From 220f5901dd1063b516b0ebbbb7c5ca9fad4cd057 Mon Sep 17 00:00:00 2001 From: Matthieu Haineault Date: Tue, 19 Aug 2025 15:46:18 -0400 Subject: [PATCH] refactor(pay-periods): removed employe_id from pay_load --- docs/swagger/swagger-spec.json | 6 ------ .../dtos/overview-employee-period.dto.ts | 16 +++++++++++----- .../services/pay-periods-query.service.ts | 16 +++++++++------- 3 files changed, 20 insertions(+), 18 deletions(-) diff --git a/docs/swagger/swagger-spec.json b/docs/swagger/swagger-spec.json index f9c2530..46a1366 100644 --- a/docs/swagger/swagger-spec.json +++ b/docs/swagger/swagger-spec.json @@ -3100,11 +3100,6 @@ "EmployeePeriodOverviewDto": { "type": "object", "properties": { - "employee_id": { - "type": "number", - "example": 42, - "description": "Employees.id (clé primaire num.)" - }, "employee_name": { "type": "string", "example": "Alex Dupont", @@ -3147,7 +3142,6 @@ } }, "required": [ - "employee_id", "employee_name", "regular_hours", "evening_hours", diff --git a/src/modules/pay-periods/dtos/overview-employee-period.dto.ts b/src/modules/pay-periods/dtos/overview-employee-period.dto.ts index 3416733..711e34c 100644 --- a/src/modules/pay-periods/dtos/overview-employee-period.dto.ts +++ b/src/modules/pay-periods/dtos/overview-employee-period.dto.ts @@ -1,11 +1,17 @@ import { ApiProperty } from '@nestjs/swagger'; +import { Allow, IsOptional } from 'class-validator'; export class EmployeePeriodOverviewDto { - @ApiProperty({ - example: 42, - description: "Employees.id (clé primaire num.)", - }) - employee_id: number; + // @ApiProperty({ + // example: 42, + // description: "Employees.id (clé primaire num.)", + // }) + // @Allow() + // @IsOptional() + // employee_id: number; + + + email:string; @ApiProperty({ example: 'Alex Dupont', diff --git a/src/modules/pay-periods/services/pay-periods-query.service.ts b/src/modules/pay-periods/services/pay-periods-query.service.ts index b733a7d..7e5c050 100644 --- a/src/modules/pay-periods/services/pay-periods-query.service.ts +++ b/src/modules/pay-periods/services/pay-periods-query.service.ts @@ -79,6 +79,7 @@ export class PayPeriodsQueryService { user: { select: { first_name: true, last_name: true, + email: true, } }, } }, }, @@ -101,7 +102,8 @@ export class PayPeriodsQueryService { id: true, user: { select: { first_name: true, - last_name: true + last_name: true, + email: true, } }, } }, } }, @@ -115,7 +117,7 @@ export class PayPeriodsQueryService { if (options?.seed_names) { for (const [id, name] of options.seed_names.entries()) { by_employee.set(id, { - employee_id: id, + email: '', employee_name: name, regular_hours: 0, evening_hours: 0, @@ -131,7 +133,7 @@ export class PayPeriodsQueryService { const ensure = (id: number, name: string) => { if (!by_employee.has(id)) { by_employee.set(id, { - employee_id: id, + email: '', employee_name: name, regular_hours: 0, evening_hours: 0, @@ -202,7 +204,7 @@ export class PayPeriodsQueryService { // 2) fetch supervisor const supervisor = await this.prisma.employees.findFirst({ - where: { user: {email: email }}, + where: { user: { email: email }}, select: { id: true, is_supervisor: true, @@ -235,7 +237,7 @@ private async resolveCrew(supervisor_id: number, include_subtree: boolean): let frontier = await this.prisma.employees.findMany({ where: { supervisor_id: supervisor_id }, - select: { id: true, user: { select: { first_name: true, last_name: true } } }, + select: { id: true, user: { select: { first_name: true, last_name: true, email: true } } }, }); result.push(...frontier.map(emp => ({ id: emp.id, first_name: emp.user.first_name, last_name: emp.user.last_name }))); @@ -245,10 +247,10 @@ private async resolveCrew(supervisor_id: number, include_subtree: boolean): const parent_ids = frontier.map(emp => emp.id); const next = await this.prisma.employees.findMany({ where: { supervisor_id: { in: parent_ids } }, - select: { id: true, user: { select: { first_name: true, last_name: true } } }, + select: { id: true, user: { select: { first_name: true, last_name: true, email: true } } }, }); if (next.length === 0) break; - result.push(...next.map(emp => ({ id: emp.id, first_name: emp.user.first_name, last_name: emp.user.last_name }))); + result.push(...next.map(emp => ({ id: emp.id, first_name: emp.user.first_name, last_name: emp.user.last_name, email: emp.user.email }))); frontier = next; }