mirror of
https://github.com/sergeyyarkov/educt-server.git
synced 2026-10-11 02:09:07 +03:00
refactored routes naming
This commit is contained in:
parent
e50700c2ab
commit
2c4e86de1e
@ -6,5 +6,5 @@
|
||||
"jsxSingleQuote": true,
|
||||
"arrowParens": "avoid",
|
||||
"endOfLine": "auto",
|
||||
"printWidth": 100
|
||||
"printWidth": 120
|
||||
}
|
||||
|
||||
@ -21,44 +21,6 @@ export default class UsersController {
|
||||
this.contact = Contact;
|
||||
}
|
||||
|
||||
/**
|
||||
* Attach array of roles to user
|
||||
* POST /users/:id/attach_roles
|
||||
*/
|
||||
public async attach_roles({ request, response, params }: HttpContextContract) {
|
||||
await request.validate(AddRoleToUserValidator);
|
||||
|
||||
const input: string[] | undefined = request.input('roles');
|
||||
const user = await this.user.query().preload('roles').where('id', params.id).firstOrFail();
|
||||
const roles = await this.findRolesBySlug(input);
|
||||
|
||||
await this.user.attachRoles(user, roles);
|
||||
|
||||
return response.ok({
|
||||
message: 'Roles attached',
|
||||
data: user.roles,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Detach array of roles from user
|
||||
* DELETE /users/:id/detach_roles
|
||||
*/
|
||||
public async detach_roles({ request, response, params }: HttpContextContract) {
|
||||
await request.validate(DelRoleFromUserValidator);
|
||||
|
||||
const input: string[] | undefined = request.input('roles');
|
||||
const user = await this.user.query().preload('roles').where('id', params.id).firstOrFail();
|
||||
const roles = await this.findRolesBySlug(input);
|
||||
|
||||
await this.user.detachRoles(user, roles);
|
||||
|
||||
return response.ok({
|
||||
message: 'Roles detached',
|
||||
data: user.roles,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Shows user info of the access token resource owner.
|
||||
* GET /users/me
|
||||
@ -182,6 +144,44 @@ export default class UsersController {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Attach array of roles to user
|
||||
* POST /users/:id/attach_roles
|
||||
*/
|
||||
public async attachRoles({ request, response, params }: HttpContextContract) {
|
||||
await request.validate(AddRoleToUserValidator);
|
||||
|
||||
const input: string[] | undefined = request.input('roles');
|
||||
const user = await this.user.query().preload('roles').where('id', params.id).firstOrFail();
|
||||
const roles = await this.findRolesBySlug(input);
|
||||
|
||||
await this.user.attachRoles(user, roles);
|
||||
|
||||
return response.ok({
|
||||
message: 'Roles attached',
|
||||
data: user.roles,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Detach array of roles from user
|
||||
* DELETE /users/:id/detach_roles
|
||||
*/
|
||||
public async detachRoles({ request, response, params }: HttpContextContract) {
|
||||
await request.validate(DelRoleFromUserValidator);
|
||||
|
||||
const input: string[] | undefined = request.input('roles');
|
||||
const user = await this.user.query().preload('roles').where('id', params.id).firstOrFail();
|
||||
const roles = await this.findRolesBySlug(input);
|
||||
|
||||
await this.user.detachRoles(user, roles);
|
||||
|
||||
return response.ok({
|
||||
message: 'Roles detached',
|
||||
data: user.roles,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Finds roles by input value and throw error if role does not exist.
|
||||
*
|
||||
|
||||
@ -24,21 +24,23 @@ Route.get('/', () => `Educt Backend API.`);
|
||||
|
||||
Route.group(() => {
|
||||
/* Auth controller */
|
||||
Route.post('login', 'AuthController.login');
|
||||
Route.post('logout', 'AuthController.logout').middleware('auth');
|
||||
Route.post('login', 'AuthController.login').as('login');
|
||||
Route.post('logout', 'AuthController.logout').middleware('auth').as('logout');
|
||||
|
||||
/* API */
|
||||
Route.group(() => {
|
||||
/**
|
||||
* Users controller
|
||||
*/
|
||||
Route.get('users/me', 'UsersController.me').middleware('role:admin,teacher,student');
|
||||
Route.get('users', 'UsersController.index').middleware('role:admin,teacher,student');
|
||||
Route.get('users/:id', 'UsersController.show').middleware('role:admin,teacher,student');
|
||||
Route.post('users', 'UsersController.store').middleware('role:admin');
|
||||
Route.patch('users/:id', 'UsersController.update').middleware('role:admin');
|
||||
Route.delete('users/:id', 'UsersController.destroy').middleware('role:admin');
|
||||
Route.post('users/:id/attach_roles', 'UsersController.attach_roles').middleware('role:admin');
|
||||
Route.delete('users/:id/detach_roles', 'UsersController.detach_roles').middleware('role:admin');
|
||||
Route.get('users', 'UsersController.index').middleware('role:admin,teacher,student').as('showAllUsers');
|
||||
Route.get('users/me', 'UsersController.me').middleware('role:admin,teacher,student').as('showMe');
|
||||
Route.get('users/:id', 'UsersController.show').middleware('role:admin,teacher,student').as('showUserById');
|
||||
Route.post('users', 'UsersController.store').middleware('role:admin').as('createUser');
|
||||
Route.patch('users/:id', 'UsersController.update').middleware('role:admin').as('updateUser');
|
||||
Route.delete('users/:id', 'UsersController.destroy').middleware('role:admin').as('deleteUser');
|
||||
Route.post('users/:id/attach-roles', 'UsersController.attachRoles').middleware('role:admin').as('attachUserRole');
|
||||
Route.delete('users/:id/detach-roles', 'UsersController.detachRoles').middleware('role:admin').as('detachUserRole');
|
||||
}).middleware('auth');
|
||||
}).prefix('api');
|
||||
})
|
||||
.prefix('/api/v1')
|
||||
.as('api');
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user