From 99494d5fed4d47418de841bf9c72c8f1a4360083 Mon Sep 17 00:00:00 2001 From: sdraris Date: Fri, 29 Aug 2025 15:29:38 +0200 Subject: [PATCH] route nounou added --- ...assistantes_maternelles.controller.spec.ts | 20 ++++++ .../assistantes_maternelles.controller.ts | 62 +++++++++++++++++++ .../assistantes_maternelles.module.ts | 9 +++ .../assistantes_maternelles.service.spec.ts | 18 ++++++ 4 files changed, 109 insertions(+) create mode 100644 src/routes/assistantes_maternelles/assistantes_maternelles.controller.spec.ts create mode 100644 src/routes/assistantes_maternelles/assistantes_maternelles.controller.ts create mode 100644 src/routes/assistantes_maternelles/assistantes_maternelles.module.ts create mode 100644 src/routes/assistantes_maternelles/assistantes_maternelles.service.spec.ts diff --git a/src/routes/assistantes_maternelles/assistantes_maternelles.controller.spec.ts b/src/routes/assistantes_maternelles/assistantes_maternelles.controller.spec.ts new file mode 100644 index 0000000..b0932ef --- /dev/null +++ b/src/routes/assistantes_maternelles/assistantes_maternelles.controller.spec.ts @@ -0,0 +1,20 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { AssistantesMaternellesController } from './assistantes_maternelles.controller'; +import { AssistantesMaternellesService } from './assistantes_maternelles.service'; + +describe('AssistantesMaternellesController', () => { + let controller: AssistantesMaternellesController; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + controllers: [AssistantesMaternellesController], + providers: [AssistantesMaternellesService], + }).compile(); + + controller = module.get(AssistantesMaternellesController); + }); + + it('should be defined', () => { + expect(controller).toBeDefined(); + }); +}); diff --git a/src/routes/assistantes_maternelles/assistantes_maternelles.controller.ts b/src/routes/assistantes_maternelles/assistantes_maternelles.controller.ts new file mode 100644 index 0000000..184cd7f --- /dev/null +++ b/src/routes/assistantes_maternelles/assistantes_maternelles.controller.ts @@ -0,0 +1,62 @@ +import { Controller, Get, Post, Body, Patch, Param, Delete } from '@nestjs/common'; +import { AssistantesMaternellesService } from './assistantes_maternelles.service'; +import { ApiBody, ApiResponse, ApiTags } from '@nestjs/swagger'; +import { BaseController } from 'src/common/base.controller'; +import { AssistanteMaternelle } from 'src/entities/assistantes_maternelles.entity'; +import { Roles } from 'src/common/decorators/roles.decorator'; +import { RoleType } from 'src/entities/users.entity'; +import { CreateAssistanteDto } from '../user/dto/create_assistante.dto'; +import { UpdateAssistanteDto } from '../user/dto/update_assistante.dto'; + +@ApiTags("Assistantes Maternelles") +@Controller('assistantes-maternelles') +export class AssistantesMaternellesController extends BaseController { + constructor(private readonly assistantesMaternellesService: AssistantesMaternellesService) { + super(assistantesMaternellesService); + } + + @Roles(RoleType.SUPER_ADMIN, RoleType.GESTIONNAIRE) //Seul les utilisateurs super admin et gestionnaire peuvent accéder à cette route + @ApiResponse({ status: 201, description: 'Assistante maternelle créée avec succès' }) + @ApiResponse({ status: 403, description: 'Accès refusé : Reservé aux super_admins et gestionnaires' }) + @ApiBody({ type: CreateAssistanteDto }) + @Post() + create(@Body() dto: CreateAssistanteDto): Promise { + return this.assistantesMaternellesService.create(dto); + } + + //Lister toutes les nounous + @Roles(RoleType.SUPER_ADMIN, RoleType.GESTIONNAIRE) //Seul les utilisateurs super admin et gestionnaire peuvent accéder à cette route + @Get() + @ApiResponse({ status: 200, description: 'Liste des assistantes maternelles' }) + @ApiResponse({ status: 403, description: 'Accès refusé : Reservé aux super_admins et gestionnaires' }) + override getAll(): Promise { + return this.assistantesMaternellesService.findAll(); + } + + @Roles(RoleType.SUPER_ADMIN, RoleType.GESTIONNAIRE) //Seul les utilisateurs super admin et gestionnaire peuvent accéder à cette route + @Get(':id') + @ApiResponse({ status: 200, description: 'Détails de l\'assistante maternelle' }) + @ApiResponse({ status: 403, description: 'Accès refusé : Reservé aux super_admins et gestionnaires' }) + getOne(@Param('id') user_id: string): Promise { + return this.assistantesMaternellesService.findOne(user_id); + } + + @Roles(RoleType.SUPER_ADMIN, RoleType.GESTIONNAIRE) //Seul les utilisateurs super admin et gestionnaire peuvent accéder à cette route + @ApiBody({ type: UpdateAssistanteDto }) + @ApiResponse({ status: 200, description: 'Assistante maternelle mise à jour avec succès' }) + @ApiResponse({ status: 403, description: 'Accès refusé : Reservé aux super_admins et gestionnaires' }) + @ApiResponse({ status: 404, description: 'Assistante maternelle non trouvée' }) + @Patch(':id') + update(@Param('id') id: string, @Body() dto: UpdateAssistanteDto): Promise { + return this.assistantesMaternellesService.update(id, dto); + } + + @Roles(RoleType.SUPER_ADMIN, RoleType.GESTIONNAIRE) //Seul les utilisateurs super admin et gestionnaire peuvent accéder à cette route + @ApiResponse({ status: 200, description: 'Assistante maternelle supprimée avec succès' }) + @ApiResponse({ status: 403, description: 'Accès refusé : Reservé aux super_admins et gestionnaires' }) + @ApiResponse({ status: 404, description: 'Assistante maternelle non trouvée' }) + @Delete(':id') + remove(@Param('id') id: string): Promise { + return this.assistantesMaternellesService.remove(id); + } +} diff --git a/src/routes/assistantes_maternelles/assistantes_maternelles.module.ts b/src/routes/assistantes_maternelles/assistantes_maternelles.module.ts new file mode 100644 index 0000000..59ab871 --- /dev/null +++ b/src/routes/assistantes_maternelles/assistantes_maternelles.module.ts @@ -0,0 +1,9 @@ +import { Module } from '@nestjs/common'; +import { AssistantesMaternellesService } from './assistantes_maternelles.service'; +import { AssistantesMaternellesController } from './assistantes_maternelles.controller'; + +@Module({ + controllers: [AssistantesMaternellesController], + providers: [AssistantesMaternellesService], +}) +export class AssistantesMaternellesModule {} diff --git a/src/routes/assistantes_maternelles/assistantes_maternelles.service.spec.ts b/src/routes/assistantes_maternelles/assistantes_maternelles.service.spec.ts new file mode 100644 index 0000000..d4d7d5e --- /dev/null +++ b/src/routes/assistantes_maternelles/assistantes_maternelles.service.spec.ts @@ -0,0 +1,18 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { AssistantesMaternellesService } from './assistantes_maternelles.service'; + +describe('AssistantesMaternellesService', () => { + let service: AssistantesMaternellesService; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [AssistantesMaternellesService], + }).compile(); + + service = module.get(AssistantesMaternellesService); + }); + + it('should be defined', () => { + expect(service).toBeDefined(); + }); +});