From 5387d671629debd869671ce43898f23a7bed7ccb Mon Sep 17 00:00:00 2001 From: sdraris Date: Wed, 27 Aug 2025 14:45:47 +0200 Subject: [PATCH] user controller added --- src/routes/user/user.controller.ts | 44 +++++++++++++++++++++++++----- 1 file changed, 37 insertions(+), 7 deletions(-) diff --git a/src/routes/user/user.controller.ts b/src/routes/user/user.controller.ts index 67a5d31..2b19aa2 100644 --- a/src/routes/user/user.controller.ts +++ b/src/routes/user/user.controller.ts @@ -1,26 +1,56 @@ -import { Body, Controller, Get, Param, 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'; @Controller('users') export class UserController { constructor(private readonly userService: UserService) {} + //Route pour creer un utilisateur + @Post() + @Roles(RoleType.SUPER_ADMIN ) //Seul les utilisateurs super admin peuvent accéder à cette route + create( + @Body() dto: CreateUserDto, + @User() currentUser: Users + ): Promise { + return this.userService.create(dto, currentUser) + } + + //Route pour retrouver tous les utilisateurs @Get() + @Roles(RoleType.SUPER_ADMIN, RoleType.GESTIONNAIRE) //Seul les utilisateurs super admin et gestionnaire peuvent accéder à cette route findAll() { return this.userService.findAll(); } //Route pour retrouver un utilisateur par ID @Get(':id') - findOneById(@Param('id') id: string) { - return this.userService.findOneById(Number(id)); + @Roles(RoleType.SUPER_ADMIN, RoleType.GESTIONNAIRE) //Seul les utilisateurs super admin et gestionnaire peuvent accéder à cette route + findOne(@Param('id') id: string) { + return this.userService.findOne(id); } - //Route pour créer un utilisateur - @Post() - createUser(@Body() createUserDto: { email: string }) { - return this.userService.createUser(createUserDto); + //Route pour modifier un utilisateur + @Patch(':id') + @Roles(RoleType.SUPER_ADMIN) //Seul les utilisateurs super admin peuvent accéder à cette route + update( + @Param('id') id: string, + @Body() dto: UpdateUserDto, + @User() currentUser: Users + ) + { + return this.userService.update(id, dto, currentUser); } + //Route pour supprimer un utitilisateur + @Delete(':id') + @Roles(RoleType.SUPER_ADMIN, RoleType.GESTIONNAIRE) //Seul les utilisateurs super admin et gestionnaires peuvent accéder à cette route + remove(@Param('id') id: string) { + return this.userService.remove(id); + } }