import { Controller, Get, Post, Body, Patch, Param, Delete, ForbiddenException } from '@nestjs/common'; import { GestionnairesService } from './gestionnaires.service'; import { RoleType, Users } from 'src/entities/users.entity'; import { ApiBody } from '@nestjs/swagger'; import { BaseController } from 'src/common/base.controller'; import { Roles } from 'src/common/decorators/roles.decorator'; import { UpdateGestionnaireDto } from '../user/dto/update_gestionnaire.dto'; import { CreateGestionnaireDto } from '../user/dto/create_gestionnaire.dto'; @Controller('gestionnaires') export class GestionnairesController extends BaseController { constructor(private readonly gestionnairesService: GestionnairesService) { super(gestionnairesService); } @Roles(RoleType.SUPER_ADMIN) @Post() create(@Body() createGestionnaireDto: CreateGestionnaireDto) { return this.gestionnairesService.create(createGestionnaireDto); } //Lister tous les gestionnaires @Roles(RoleType.SUPER_ADMIN, RoleType.GESTIONNAIRE) @Get() getAll(): Promise { //Dans gestionnaire service le findAll cherche deja les gestionnaires const gestionnaire = this.gestionnairesService.findAll(); return gestionnaire; } //Récupérer un gestionnaire @Roles(RoleType.GESTIONNAIRE, RoleType.SUPER_ADMIN) @Get(':id') findOne(@Param('id') id: string) { return this.gestionnairesService.findOne(id); } //Modifier un gestionnaire @Roles(RoleType.SUPER_ADMIN) @Patch(':id') update( @Param('id') id: string, @Body() dto: UpdateGestionnaireDto, ) { const update_gestionnaire = this.gestionnairesService.update(id, dto); return update_gestionnaire; } @Roles(RoleType.SUPER_ADMIN) @Delete(':id') remove(@Param('id') id: string) { return this.gestionnairesService.remove(id); } }