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,
|
"jsxSingleQuote": true,
|
||||||
"arrowParens": "avoid",
|
"arrowParens": "avoid",
|
||||||
"endOfLine": "auto",
|
"endOfLine": "auto",
|
||||||
"printWidth": 100
|
"printWidth": 120
|
||||||
}
|
}
|
||||||
|
|||||||
@ -21,44 +21,6 @@ export default class UsersController {
|
|||||||
this.contact = Contact;
|
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.
|
* Shows user info of the access token resource owner.
|
||||||
* GET /users/me
|
* 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.
|
* Finds roles by input value and throw error if role does not exist.
|
||||||
*
|
*
|
||||||
|
|||||||
@ -24,21 +24,23 @@ Route.get('/', () => `Educt Backend API.`);
|
|||||||
|
|
||||||
Route.group(() => {
|
Route.group(() => {
|
||||||
/* Auth controller */
|
/* Auth controller */
|
||||||
Route.post('login', 'AuthController.login');
|
Route.post('login', 'AuthController.login').as('login');
|
||||||
Route.post('logout', 'AuthController.logout').middleware('auth');
|
Route.post('logout', 'AuthController.logout').middleware('auth').as('logout');
|
||||||
|
|
||||||
/* API */
|
/* API */
|
||||||
Route.group(() => {
|
Route.group(() => {
|
||||||
/**
|
/**
|
||||||
* Users controller
|
* Users controller
|
||||||
*/
|
*/
|
||||||
Route.get('users/me', 'UsersController.me').middleware('role:admin,teacher,student');
|
Route.get('users', 'UsersController.index').middleware('role:admin,teacher,student').as('showAllUsers');
|
||||||
Route.get('users', 'UsersController.index').middleware('role:admin,teacher,student');
|
Route.get('users/me', 'UsersController.me').middleware('role:admin,teacher,student').as('showMe');
|
||||||
Route.get('users/:id', 'UsersController.show').middleware('role:admin,teacher,student');
|
Route.get('users/:id', 'UsersController.show').middleware('role:admin,teacher,student').as('showUserById');
|
||||||
Route.post('users', 'UsersController.store').middleware('role:admin');
|
Route.post('users', 'UsersController.store').middleware('role:admin').as('createUser');
|
||||||
Route.patch('users/:id', 'UsersController.update').middleware('role:admin');
|
Route.patch('users/:id', 'UsersController.update').middleware('role:admin').as('updateUser');
|
||||||
Route.delete('users/:id', 'UsersController.destroy').middleware('role:admin');
|
Route.delete('users/:id', 'UsersController.destroy').middleware('role:admin').as('deleteUser');
|
||||||
Route.post('users/:id/attach_roles', 'UsersController.attach_roles').middleware('role:admin');
|
Route.post('users/:id/attach-roles', 'UsersController.attachRoles').middleware('role:admin').as('attachUserRole');
|
||||||
Route.delete('users/:id/detach_roles', 'UsersController.detach_roles').middleware('role:admin');
|
Route.delete('users/:id/detach-roles', 'UsersController.detachRoles').middleware('role:admin').as('detachUserRole');
|
||||||
}).middleware('auth');
|
}).middleware('auth');
|
||||||
}).prefix('api');
|
})
|
||||||
|
.prefix('/api/v1')
|
||||||
|
.as('api');
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user