mirror of
https://github.com/dadosfera/maestro.git
synced 2026-11-11 14:09:07 +00:00
FEAT: Roles WIP
This commit is contained in:
@@ -9,25 +9,28 @@ import {
|
||||
Post,
|
||||
Put,
|
||||
Query,
|
||||
UseFilters,
|
||||
} from '@nestjs/common';
|
||||
import { ApiResponse, ApiTags } from '@nestjs/swagger';
|
||||
import { User } from 'src/authentication/user.decorator';
|
||||
import { ApiCreatedResponse, ApiOkResponse, ApiTags } from '@nestjs/swagger';
|
||||
import { RequestUser, User } from 'src/authentication/user.decorator';
|
||||
import { DadosferaLogger } from 'dadosfera-logs';
|
||||
import { RolesService } from './roles.service';
|
||||
import {
|
||||
AssignPermissionsToRoleReq,
|
||||
AssignPermissionsToRoleRes,
|
||||
AssignPermissionsToRoleReq as grantPermissionsToRoleReq,
|
||||
AssignPermissionsToRoleRes as GrantPermissionsToRoleRes,
|
||||
CreateRoleReq,
|
||||
CreateRoleRes,
|
||||
GetRolesByCustomerReq,
|
||||
GetRolesByCustomerRes,
|
||||
UnassignPermissionsToRoleReq,
|
||||
UnassignPermissionsToRoleRes,
|
||||
UnassignPermissionsToRoleReq as RevokePermissionsToRoleReq,
|
||||
UnassignPermissionsToRoleRes as RevokePermissionsToRoleRes,
|
||||
UpdateRoleReq,
|
||||
UpdateRoleRes,
|
||||
} from './dto/entities';
|
||||
import { GrpcToHttpExceptionFilter } from 'src/error/grpc-to-http-exception.filter';
|
||||
|
||||
@ApiTags('Roles')
|
||||
@UseFilters(new GrpcToHttpExceptionFilter())
|
||||
@Controller('roles')
|
||||
export class RolesController {
|
||||
logger: any;
|
||||
@@ -39,46 +42,57 @@ export class RolesController {
|
||||
) {
|
||||
this.logger = dadosferaLogger.logger;
|
||||
}
|
||||
|
||||
@Get()
|
||||
@ApiResponse({ type: GetRolesByCustomerRes })
|
||||
@ApiOkResponse({ type: GetRolesByCustomerRes })
|
||||
async getRolesByCustomer(
|
||||
@User() user,
|
||||
@User() user: RequestUser,
|
||||
@Query() filters: GetRolesByCustomerReq,
|
||||
) {
|
||||
this.logger.info('getRolesByCustomer', { user });
|
||||
this.rolesService.getRolesByCustomer(filters);
|
||||
return await this.rolesService.getRolesByCustomer(
|
||||
filters,
|
||||
user.customer_id,
|
||||
);
|
||||
}
|
||||
|
||||
@Post()
|
||||
@ApiResponse({ type: CreateRoleRes })
|
||||
async createRole(@User() user, @Body() body: CreateRoleReq) {
|
||||
@ApiCreatedResponse({ type: CreateRoleRes })
|
||||
async createRole(@User() user: RequestUser, @Body() body: CreateRoleReq) {
|
||||
this.logger.info('createRole', { user });
|
||||
return await this.rolesService.createRole(body, user.customer_id);
|
||||
}
|
||||
|
||||
@Delete(':id')
|
||||
async deleteRole(@User() user, @Param('id') id: string) {
|
||||
async deleteRole(@User() user: RequestUser, @Param('id') id: string) {
|
||||
this.logger.info('deleteRole', { user });
|
||||
return await this.rolesService.removeRole(id);
|
||||
}
|
||||
|
||||
@Put('permissions')
|
||||
@ApiResponse({ type: AssignPermissionsToRoleRes })
|
||||
async assignPermissionsToRole(
|
||||
@User() user,
|
||||
@Body() body: AssignPermissionsToRoleReq,
|
||||
@ApiOkResponse({ type: GrantPermissionsToRoleRes })
|
||||
async grantPermissionsToRole(
|
||||
@User() user: RequestUser,
|
||||
@Body() body: grantPermissionsToRoleReq,
|
||||
) {
|
||||
this.logger.info('assignPermissionsToRole', { user });
|
||||
this.logger.info('grantPermissionsToRole', { user });
|
||||
return await this.rolesService.grantPermissionsToRole(body);
|
||||
}
|
||||
|
||||
@Delete('permissions')
|
||||
@ApiResponse({ type: UnassignPermissionsToRoleRes })
|
||||
async unassignPermissionsToRole(
|
||||
@User() user,
|
||||
@Body() body: UnassignPermissionsToRoleReq,
|
||||
@ApiOkResponse({ type: RevokePermissionsToRoleRes })
|
||||
async revokePermissionsToRole(
|
||||
@User() user: RequestUser,
|
||||
@Body() body: RevokePermissionsToRoleReq,
|
||||
) {
|
||||
this.logger.info('unassignPermissionsToRole', { user });
|
||||
this.logger.info('revokePermissionsToRole', { user });
|
||||
return await this.rolesService.revokePermissionToRole(body);
|
||||
}
|
||||
|
||||
@Patch(':id')
|
||||
@ApiResponse({ type: UpdateRoleRes })
|
||||
@ApiOkResponse({ type: UpdateRoleRes })
|
||||
async updateRole(
|
||||
@User() user,
|
||||
@User() user: RequestUser,
|
||||
@Param('id') id: string,
|
||||
@Body() body: UpdateRoleReq,
|
||||
) {
|
||||
|
||||
Reference in New Issue
Block a user