import { BadRequestException, Body, Controller, Get, Post, UseGuards, } from '@nestjs/common'; import { Privileges } from 'src/decorators/privileges.decorator'; import { Scopes } from 'src/decorators/scopes.decorator'; import { OAuth2Guard } from 'src/guards/oauth2.guard'; import { PrivilegesGuard } from 'src/guards/privileges.guard'; import { ScopesGuard } from 'src/guards/scopes.guard'; import { PrivilegeService } from 'src/modules/objects/privilege/privilege.service'; import { FormUtilityService } from 'src/modules/utility/services/form-utility.service'; import { PaginationService } from 'src/modules/utility/services/paginate.service'; @Controller('/api/admin/privileges') @UseGuards(OAuth2Guard, PrivilegesGuard, ScopesGuard) export class PrivilegeAdminController { constructor( private _privilege: PrivilegeService, private _paginate: PaginationService, private _form: FormUtilityService, ) {} @Get('') @Scopes('management') @Privileges('admin', 'admin:user', 'admin:user:privilege') async privilegeList() { return this._privilege.getAllPrivileges(); } @Post('') @Scopes('management') @Privileges('admin', 'admin:user', 'admin:user:privilege') async newPrivilege(@Body() body: { privilege: string }) { if (!body.privilege) { throw new BadRequestException('Privilege is required'); } return this._privilege.createPrivilege(body.privilege); } }