From 3d6bde36ae7c491b970e17c9aea2e6690311ba8a Mon Sep 17 00:00:00 2001 From: Matthieu Haineault Date: Wed, 16 Jul 2025 14:01:26 -0400 Subject: [PATCH] fix(employee): minor fix for preps setup oauth --- prisma/schema.prisma | 3 ++- .../controllers/employees.controller.ts | 22 +++++++---------- .../employees/dtos/create-employee.dto.ts | 17 +++++++++---- .../employees/services/employees.service.ts | 24 +++++++++++-------- 4 files changed, 37 insertions(+), 29 deletions(-) diff --git a/prisma/schema.prisma b/prisma/schema.prisma index d40e803..fea1ff5 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -17,7 +17,8 @@ model Users { id String @id @default(uuid()) first_name String last_name String - email String? @unique + email String @unique + password String phone_number Int @unique residence String? role Roles @default(GUEST) diff --git a/src/modules/employees/controllers/employees.controller.ts b/src/modules/employees/controllers/employees.controller.ts index cce4e9d..a70275c 100644 --- a/src/modules/employees/controllers/employees.controller.ts +++ b/src/modules/employees/controllers/employees.controller.ts @@ -27,25 +27,21 @@ export class EmployeesController { return this.employeesService.findAll(); } - @Get(':employee_id') - findOne( - @Param('employee_id', ParseIntPipe) employee_id: number, - ): Promise { - return this.employeesService.findOne(employee_id); + @Get(':id') + findOne(@Param('id', ParseIntPipe) id: number): Promise { + return this.employeesService.findOne(id); } - @Patch(':employee_id') + @Patch(':id') update( - @Param('employee_id', ParseIntPipe) employee_id: number, + @Param('id', ParseIntPipe) id: number, @Body() dto: UpdateEmployeeDto, ): Promise { - return this.employeesService.update(employee_id, dto); + return this.employeesService.update(id, dto); } - @Delete(':employee_id') - remove( - @Param('employee_id', ParseIntPipe) employee_id: number, - ): Promise { - return this.employeesService.remove(employee_id); + @Delete(':id') + remove(@Param('id', ParseIntPipe) id: number): Promise { + return this.employeesService.remove(id); } } diff --git a/src/modules/employees/dtos/create-employee.dto.ts b/src/modules/employees/dtos/create-employee.dto.ts index 7cad392..f25217e 100644 --- a/src/modules/employees/dtos/create-employee.dto.ts +++ b/src/modules/employees/dtos/create-employee.dto.ts @@ -9,6 +9,7 @@ import { IsString, } from 'class-validator'; import { Type } from 'class-transformer'; +import { Roles } from '@prisma/client'; export class CreateEmployeeDto { @IsString() @@ -20,13 +21,15 @@ export class CreateEmployeeDto { last_name: string; @IsEmail() - @IsOptional() - email?: string; + @IsNotEmpty() + email: string; + + @IsString() + @IsNotEmpty() + password: string; @Type(() => Number) - @IsInt({ - message: 'Le numéro de téléphone doit être sans tirets ni espaces.', - }) + @IsInt() @IsPositive() phone_number: number; @@ -34,6 +37,10 @@ export class CreateEmployeeDto { @IsOptional() residence?: string; + @IsString() + @IsNotEmpty() + role: Roles; + @IsInt() @IsPositive() @Type(() => Number) diff --git a/src/modules/employees/services/employees.service.ts b/src/modules/employees/services/employees.service.ts index 63daacd..2fb6f43 100644 --- a/src/modules/employees/services/employees.service.ts +++ b/src/modules/employees/services/employees.service.ts @@ -17,8 +17,10 @@ export class EmployeesService { first_name, last_name, email, + password, phone_number, residence, + role, external_payroll_id, company_code, first_work_day, @@ -31,13 +33,15 @@ export class EmployeesService { first_name, last_name, email, + password, phone_number, residence, + role, }, }); return tx.employees.create({ data: { - user_id: user.user_id, + user_id: user.id, external_payroll_id, company_code, first_work_day, @@ -53,24 +57,24 @@ export class EmployeesService { }); } - async findOne(employee_id: number): Promise { + async findOne(id: number): Promise { const emp = await this.prisma.employees.findUnique({ - where: { employee_id }, + where: { id }, include: { user: true }, }); if (!emp) { - throw new NotFoundException(`Employee #${employee_id} not found`); + throw new NotFoundException(`Employee #${id} not found`); } return emp; } async update( - employee_id: number, + id: number, dto: UpdateEmployeeDto, ): Promise { - await this.findOne(employee_id); + await this.findOne(id); return this.prisma.employees.update({ - where: { employee_id }, + where: { id }, data: { external_payroll_id: dto.external_payroll_id, company_code: dto.company_code, @@ -80,8 +84,8 @@ export class EmployeesService { }); } - async remove(employee_id: number): Promise { - await this.findOne(employee_id); - return this.prisma.employees.delete({ where: { employee_id } }); + async remove(id: number): Promise { + await this.findOne(id); + return this.prisma.employees.delete({ where: { id } }); } }