import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Post, Put, Query, UseGuards } from '@nestjs/common'; import { ApiBearerAuth, ApiQuery, ApiTags } from '@nestjs/swagger'; import { PermissionsService } from 'src/permission/permissions.service'; import { CreatePermissionDto } from 'src/permission/dto/create-permission.dto'; import { UpdatePermissionDto } from 'src/permission/dto/update-permission.dto'; import { PermissionFilterDto } from 'src/permission/dto/permission-filter.dto'; import { Permission } from 'src/permission/serializer/permission.serializer'; import { PermissionGuard } from 'src/common/guard/permission.guard'; import { Pagination } from 'src/paginate'; import JwtTwoFactorGuard from 'src/common/guard/jwt-two-factor.guard'; @ApiTags('permissions') @UseGuards(JwtTwoFactorGuard, PermissionGuard) @Controller('permissions') @ApiBearerAuth() export class PermissionsController { constructor(private readonly permissionsService: PermissionsService) {} @Post() create( @Body() createPermissionDto: CreatePermissionDto ): Promise { return this.permissionsService.create(createPermissionDto); } @Get() @ApiQuery({ type: PermissionFilterDto }) findAll( @Query() permissionFilterDto: PermissionFilterDto ): Promise> { return this.permissionsService.findAll(permissionFilterDto); } @Get(':id') findOne( @Param('id') id: string ): Promise { return this.permissionsService.findOne(+id); } @Put(':id') update( @Param('id') id: string, @Body() updatePermissionDto: UpdatePermissionDto ): Promise { return this.permissionsService.update(+id, updatePermissionDto); } @Delete(':id') @HttpCode(HttpStatus.NO_CONTENT) remove( @Param('id') id: string ): Promise { return this.permissionsService.remove(+id); } @Post('/sync') @HttpCode(HttpStatus.NO_CONTENT) syncPermission(): Promise { return this.permissionsService.syncPermission(); } }