mirror of
https://github.com/sergeyyarkov/educt-server.git
synced 2026-10-11 10:19:20 +03:00
refactor: update user http request type & validator
This commit is contained in:
parent
4c406ed4a4
commit
cded256d0f
@ -1,5 +1,3 @@
|
|||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
|
|
||||||
import Hash from '@ioc:Adonis/Core/Hash';
|
import Hash from '@ioc:Adonis/Core/Hash';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -64,6 +62,7 @@ export default class UserRepository {
|
|||||||
* @returns Array of users
|
* @returns Array of users
|
||||||
*/
|
*/
|
||||||
public async getAll(params?: any) {
|
public async getAll(params?: any) {
|
||||||
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
||||||
const { search, email, login, first_name, last_name, role, page = 1, limit = 10 }: any = params || {};
|
const { search, email, login, first_name, last_name, role, page = 1, limit = 10 }: any = params || {};
|
||||||
|
|
||||||
const query = this.User.query();
|
const query = this.User.query();
|
||||||
@ -109,8 +108,8 @@ export default class UserRepository {
|
|||||||
*/
|
*/
|
||||||
public async create(data: CreateUserValidator['schema']['props']): Promise<User> {
|
public async create(data: CreateUserValidator['schema']['props']): Promise<User> {
|
||||||
const user = await this.User.create({
|
const user = await this.User.create({
|
||||||
first_name: data.first_name,
|
first_name: data.first_name.charAt(0).toUpperCase() + data.first_name.substr(1),
|
||||||
last_name: data.last_name,
|
last_name: data.last_name.charAt(0).toUpperCase() + data.last_name.substr(1),
|
||||||
login: data.login,
|
login: data.login,
|
||||||
email: data.email,
|
email: data.email,
|
||||||
password: data.password,
|
password: data.password,
|
||||||
|
|||||||
@ -44,5 +44,8 @@ export default class CreateUserValidator {
|
|||||||
* }
|
* }
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public messages = {};
|
public messages = {
|
||||||
|
'login.unique': '"Login" filed is already in use.',
|
||||||
|
'email.unique': '"Email" field is already in use.',
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,12 +5,14 @@ export default class UpdateUserValidator {
|
|||||||
constructor(protected ctx: HttpContextContract) {}
|
constructor(protected ctx: HttpContextContract) {}
|
||||||
|
|
||||||
public schema = schema.create({
|
public schema = schema.create({
|
||||||
first_name: schema.string(),
|
first_name: schema.string.optional(),
|
||||||
last_name: schema.string(),
|
last_name: schema.string.optional(),
|
||||||
login: schema.string.optional({}, [rules.unique({ table: 'users', column: 'login' })]),
|
login: schema.string.optional({}, [rules.unique({ table: 'users', column: 'login' })]),
|
||||||
email: schema.string.optional({}, [rules.email(), rules.unique({ table: 'users', column: 'email' })]),
|
email: schema.string.optional({}, [rules.email(), rules.unique({ table: 'users', column: 'email' })]),
|
||||||
password: schema.string(),
|
password: schema.string.optional(),
|
||||||
});
|
});
|
||||||
|
|
||||||
public messages = {};
|
public messages = {
|
||||||
|
'email.unique': 'Email is not available.',
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,7 +4,7 @@ Route.group(() => {
|
|||||||
Route.get('/', 'Api/v1/UsersController.list').middleware('role:admin,teacher,student').as('users.list');
|
Route.get('/', 'Api/v1/UsersController.list').middleware('role:admin,teacher,student').as('users.list');
|
||||||
Route.post('/', 'Api/v1/UsersController.create').middleware('role:admin,teacher').as('users.create');
|
Route.post('/', 'Api/v1/UsersController.create').middleware('role:admin,teacher').as('users.create');
|
||||||
Route.get('/:id', 'Api/v1/UsersController.show').middleware('role:admin,teacher,student').as('users.show');
|
Route.get('/:id', 'Api/v1/UsersController.show').middleware('role:admin,teacher,student').as('users.show');
|
||||||
Route.put('/:id', 'Api/v1/UsersController.update').middleware('role:admin').as('users.update');
|
Route.patch('/:id', 'Api/v1/UsersController.update').middleware('role:admin,teacher').as('users.update');
|
||||||
Route.delete('/:id', 'Api/v1/UsersController.delete').middleware('role:admin,teacher').as('users.delete');
|
Route.delete('/:id', 'Api/v1/UsersController.delete').middleware('role:admin,teacher').as('users.delete');
|
||||||
Route.post('/:id/attach-roles', 'Api/v1/UsersController.attachRoles')
|
Route.post('/:id/attach-roles', 'Api/v1/UsersController.attachRoles')
|
||||||
.middleware('role:admin,teacher')
|
.middleware('role:admin,teacher')
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user