Skip to content
Snippets Groups Projects
admin.controller.ts 1.6 KiB
Newer Older
  • Learn to ignore specific revisions
  • import { Body } from '@nestjs/common';
    import { Controller, Get, Post, UseGuards } from '@nestjs/common';
    import { ApiOperation } from '@nestjs/swagger';
    import { JwtAuthGuard } from '../auth/guards/jwt-auth.guard';
    import { Roles } from '../users/decorators/roles.decorator';
    import { RolesGuard } from '../users/guards/roles.guard';
    import { UsersService } from '../users/users.service';
    import { PendingStructureDto } from './dto/pending-structure.dto';
    
    @Controller('admin')
    export class AdminController {
      constructor(private usersService: UsersService) {}
    
      @UseGuards(JwtAuthGuard, RolesGuard)
      @Roles('admin')
      @Get('pendingStructures')
      @ApiOperation({ description: 'Get pending structre for validation' })
    
    Hugo SUBTIL's avatar
    Hugo SUBTIL committed
      public getPendingAttachments(): Promise<PendingStructureDto[]> {
    
        return this.usersService.getPendingStructures();
      }
    
      @UseGuards(JwtAuthGuard, RolesGuard)
      @Roles('admin')
      @Post('validatePendingStructure')
      @ApiOperation({ description: 'Validate structure ownership' })
      public validatePendingStructure(@Body() pendingStructureDto: PendingStructureDto) {
        return this.usersService.validatePendingStructure(
          pendingStructureDto.userEmail,
          pendingStructureDto.structureId,
          true
        );
      }
    
      @UseGuards(JwtAuthGuard, RolesGuard)
      @Roles('admin')
      @Post('rejectPendingStructure')
      @ApiOperation({ description: 'Refuse structure ownership' })
      public refusePendingStructure(@Body() pendingStructureDto: PendingStructureDto) {
        return this.usersService.validatePendingStructure(
          pendingStructureDto.userEmail,
          pendingStructureDto.structureId,
          false
        );
      }
    }