mirror of
https://github.com/dadosfera/maestro.git
synced 2026-11-10 19:59:09 +00:00
FEAT: Users roles id = seqid
This commit is contained in:
@@ -5,27 +5,35 @@ import {
|
||||
Get,
|
||||
Inject,
|
||||
Param,
|
||||
Patch,
|
||||
Post,
|
||||
Put,
|
||||
Query,
|
||||
Req,
|
||||
UseFilters,
|
||||
} from '@nestjs/common';
|
||||
import { ApiOkResponse, ApiTags } from '@nestjs/swagger';
|
||||
import { ApiCreatedResponse, ApiOkResponse, ApiTags } from '@nestjs/swagger';
|
||||
import { DadosferaLogger } from 'dadosfera-logs';
|
||||
import { RequireAllPermissions } from 'src/authentication/authentication.decorator';
|
||||
import { PERMISSIONS } from 'src/authentication/permissions.enum';
|
||||
import { RequestUser, User } from 'src/authentication/user.decorator';
|
||||
import { GrpcToHttpExceptionFilter } from 'src/error/grpc-to-http-exception.filter';
|
||||
import {
|
||||
AssignRoleToUserReq,
|
||||
BatchCreateUserReq,
|
||||
BatchCreateUserRes,
|
||||
CreateUserReq,
|
||||
CreateUserRes,
|
||||
DeleteUserRes,
|
||||
GetAllUsersByCustomerIdReq,
|
||||
GetAllUsersByCustomerIdRes,
|
||||
UnassignRoleToUserReq,
|
||||
UserByCustomer,
|
||||
} from './dtos/entities';
|
||||
import { UsersService } from './users.service';
|
||||
|
||||
// TODO GET de hierarquias e do PATCH em usuário
|
||||
@ApiTags('Users')
|
||||
@Controller('users')
|
||||
@UseFilters(GrpcToHttpExceptionFilter)
|
||||
export class UsersController {
|
||||
logger: any;
|
||||
|
||||
@@ -38,37 +46,48 @@ export class UsersController {
|
||||
}
|
||||
|
||||
@Get()
|
||||
@RequireAllPermissions(PERMISSIONS.USERS.permissions.ADMIN)
|
||||
@ApiOkResponse({
|
||||
type: GetAllUsersByCustomerIdRes,
|
||||
description: 'List of users of a customer',
|
||||
})
|
||||
async getAllUsersByCustomerId(
|
||||
@User() user: RequestUser,
|
||||
@Query('s') searchQuery: GetAllUsersByCustomerIdReq,
|
||||
) {
|
||||
async getAllUsersByCustomerId(@User() user: RequestUser) {
|
||||
this.logger.info('getAllUsersByCustomerId', { user });
|
||||
return await this.userService.findAllUsersByCustomerId(
|
||||
user.customer_id,
|
||||
searchQuery,
|
||||
);
|
||||
return await this.userService.findAllUsersByCustomerId(user.customer_id);
|
||||
}
|
||||
|
||||
@Post()
|
||||
@ApiOkResponse({ type: CreateUserRes })
|
||||
@RequireAllPermissions(PERMISSIONS.USERS.permissions.ADMIN)
|
||||
@ApiCreatedResponse({ type: CreateUserRes })
|
||||
async createUser(@User() user: RequestUser, @Body() body: CreateUserReq) {
|
||||
this.logger.info('createUser', { user });
|
||||
return await this.userService.createUser(body);
|
||||
}
|
||||
|
||||
@Patch(':id')
|
||||
@RequireAllPermissions(PERMISSIONS.USERS.permissions.ADMIN)
|
||||
@ApiCreatedResponse({ type: CreateUserRes })
|
||||
async updateUser(
|
||||
@User() user: RequestUser,
|
||||
@Body() body: CreateUserReq,
|
||||
@Param('id') id: string,
|
||||
) {
|
||||
this.logger.info('createUser', { user });
|
||||
return await this.userService.updateUser(body, id);
|
||||
}
|
||||
|
||||
@Post('batch')
|
||||
@ApiOkResponse({ type: CreateUserRes })
|
||||
@RequireAllPermissions(PERMISSIONS.USERS.permissions.ADMIN)
|
||||
@ApiCreatedResponse({ type: BatchCreateUserRes })
|
||||
async batchCreateUser(
|
||||
@User() user: RequestUser,
|
||||
@Body() body: CreateUserReq,
|
||||
@Body() body: BatchCreateUserReq,
|
||||
) {
|
||||
this.logger.info('batchCreateUser', { user });
|
||||
return await this.userService.batchCreateUser(body);
|
||||
}
|
||||
|
||||
@Delete(':id')
|
||||
@RequireAllPermissions(PERMISSIONS.USERS.permissions.ADMIN)
|
||||
@ApiOkResponse({ type: DeleteUserRes })
|
||||
async deleteUser(@User() user: RequestUser, @Param('id') id: string) {
|
||||
this.logger.info('deleteUser', { user });
|
||||
@@ -76,6 +95,7 @@ export class UsersController {
|
||||
}
|
||||
|
||||
@Put('role')
|
||||
@RequireAllPermissions(PERMISSIONS.USERS.permissions.ADMIN)
|
||||
async assignRoleToUser(
|
||||
@User() user: RequestUser,
|
||||
@Body() body: AssignRoleToUserReq,
|
||||
@@ -85,11 +105,22 @@ export class UsersController {
|
||||
}
|
||||
|
||||
@Delete('role')
|
||||
@RequireAllPermissions(PERMISSIONS.USERS.permissions.ADMIN)
|
||||
async unassignRoleToUser(
|
||||
@User() user: RequestUser,
|
||||
@Body() body: UnassignRoleToUserReq,
|
||||
@Req() request: UnassignRoleToUserReq,
|
||||
) {
|
||||
this.logger.info('unassignRoleToUser', { user });
|
||||
return await this.userService.unassignRoleToUser(body);
|
||||
return await this.userService.unassignRoleToUser(request);
|
||||
}
|
||||
|
||||
@Get(':id')
|
||||
@RequireAllPermissions(PERMISSIONS.USERS.permissions.ADMIN)
|
||||
@ApiOkResponse({
|
||||
type: UserByCustomer,
|
||||
})
|
||||
async findOneById(@User() user: RequestUser, @Param('id') id: string) {
|
||||
this.logger.info('findOneById', { user });
|
||||
return await this.userService.findOneById(id);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user