FEAT: Users roles id = seqid

This commit is contained in:
Gabriel Rosa
2022-07-18 14:04:35 -03:00
parent 52f9d06ad0
commit 82310c6314
11 changed files with 193 additions and 54 deletions
+48 -17
View File
@@ -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);
}
}