From 78934384f45fedba1c70d46873905568b7286df3 Mon Sep 17 00:00:00 2001 From: sdraris Date: Wed, 3 Sep 2025 13:47:32 +0200 Subject: [PATCH] swagger doc added --- src/routes/user/user.controller.ts | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/routes/user/user.controller.ts b/src/routes/user/user.controller.ts index 9a36a9c..c8a791c 100644 --- a/src/routes/user/user.controller.ts +++ b/src/routes/user/user.controller.ts @@ -1,18 +1,24 @@ -import { Body, Controller, Delete, Get, Param, Patch, Post } from '@nestjs/common'; +import { Body, Controller, Delete, Get, Param, Patch, Post, UseGuards } from '@nestjs/common'; import { UserService } from './user.service'; import { Roles } from 'src/common/decorators/roles.decorator'; import { RoleType, Users } from 'src/entities/users.entity'; import { CreateUserDto } from './dto/create_user.dto'; import { User } from 'src/common/decorators/user.decorator'; import { UpdateUserDto } from './dto/update_user.dto'; +import { ApiBearerAuth, ApiOperation, ApiParam, ApiTags } from '@nestjs/swagger'; +import { AuthGuard } from 'src/common/guards/auth.guard'; +@ApiTags('Utilisateurs') +@ApiBearerAuth('access-token') +@UseGuards(AuthGuard) @Controller('users') export class UserController { - constructor(private readonly userService: UserService) {} + constructor(private readonly userService: UserService) { } // Création d'un utilisateur (réservée aux super admins) @Post() @Roles(RoleType.SUPER_ADMIN) + @ApiOperation({ summary: 'Creer un nouvel utilisateur (pour super admin seulement)' }) create( @Body() dto: CreateUserDto, @User() currentUser: Users @@ -22,13 +28,16 @@ export class UserController { // Lister tous les utilisateurs (super_admin et gestionnaire) @Get() - @Roles(RoleType.SUPER_ADMIN, RoleType.GESTIONNAIRE) + @ApiOperation({ summary: 'Lister tous les utilisateurs' }) + @Roles(RoleType.SUPER_ADMIN) findAll() { return this.userService.findAll(); } // Récupérer un utilisateur par son ID @Get(':id') + @ApiOperation({ summary: 'Trouver un utilisateur par son id' }) + @ApiParam({ name: 'id', description: "UUID de l'utilisateur" }) @Roles(RoleType.SUPER_ADMIN, RoleType.GESTIONNAIRE) findOne(@Param('id') id: string) { return this.userService.findOne(id); @@ -37,6 +46,8 @@ export class UserController { // Modifier un utilisateur (réservé super_admin) @Patch(':id') @Roles(RoleType.SUPER_ADMIN) + @ApiOperation({summary: 'Trouver un utilisateur par son id'}) + @ApiParam({name: 'id', description: "UUID de l'utilisateur"}) update( @Param('id') id: string, @Body() dto: UpdateUserDto, @@ -46,6 +57,8 @@ export class UserController { } // Supprimer un utilisateur (super_admin et gestionnaire) + @ApiOperation({summary: 'Supprimer un utilisateur'}) + @ApiParam({name: 'id', description: "UUID de l'utilisateur"}) @Delete(':id') @Roles(RoleType.SUPER_ADMIN, RoleType.GESTIONNAIRE) remove(@Param('id') id: string) {