From 5a28630c21019e1a51bec7ef1dd9deb29e8af2b1 Mon Sep 17 00:00:00 2001 From: Nicolas Drolet Date: Thu, 27 Nov 2025 08:40:41 -0500 Subject: [PATCH] refactor(employees): added functionality to take an optional employee email to retrieve profile data --- .../employees/controllers/employees.controller.ts | 9 ++++++--- .../services/timesheet-get-overview.service.ts | 6 +++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/identity-and-account/employees/controllers/employees.controller.ts b/src/identity-and-account/employees/controllers/employees.controller.ts index fd3bbfc..b5cb43e 100644 --- a/src/identity-and-account/employees/controllers/employees.controller.ts +++ b/src/identity-and-account/employees/controllers/employees.controller.ts @@ -1,4 +1,4 @@ -import { Controller, Get, Patch, Param, Body, NotFoundException, Req, Post } from "@nestjs/common"; +import { Controller, Get, Patch, Param, Body, NotFoundException, Req, Post, Query } from "@nestjs/common"; import { Employees } from "@prisma/client"; import { RolesAllowed } from "src/common/decorators/roles.decorators"; import { Result } from "src/common/errors/result-error.factory"; @@ -19,9 +19,12 @@ export class EmployeesController { ) { } @Get('profile') - findOneProfile(@Req() req): Promise> { + findOneProfile( + @Req() req, + @Query('employee_email') employee_email?: string, + ): Promise> { const email = req.user?.email; - return this.employeesService.findOneProfile(email); + return this.employeesService.findOneProfile(employee_email ?? email); } @Get('employee-list') diff --git a/src/time-and-attendance/timesheets/services/timesheet-get-overview.service.ts b/src/time-and-attendance/timesheets/services/timesheet-get-overview.service.ts index 6c8b008..b9baab6 100644 --- a/src/time-and-attendance/timesheets/services/timesheet-get-overview.service.ts +++ b/src/time-and-attendance/timesheets/services/timesheet-get-overview.service.ts @@ -99,7 +99,7 @@ export class GetTimesheetsOverviewService { where: { employee_id, start_date: { gte: period_start, lte: period_end } }, include: { employee: { include: { user: true } }, - shift: { include: { bank_code: true } }, + shift: { include: { bank_code: true }, orderBy: { start_time: 'asc'} }, expense: { include: { bank_code: true, attachment_record: true } }, }, orderBy: { start_date: 'asc' }, @@ -109,7 +109,7 @@ export class GetTimesheetsOverviewService { private async mapOneTimesheet(timesheet: Prisma.TimesheetsGetPayload<{ include: { employee: { include: { user } }, - shift: { include: { bank_code } }, + shift: { include: { bank_code }, orderBy: { start_time: 'asc'} }, expense: { include: { bank_code, attachment_record } }, } }>): Promise { @@ -118,7 +118,7 @@ export class GetTimesheetsOverviewService { const day_dates = sevenDaysFrom(start); //map of shifts by days - const shifts_by_date = new Map[]>(); + const shifts_by_date = new Map[]>(); for (const shift of timesheet.shift) { const date_string = toStringFromDate(shift.date); const arr = shifts_by_date.get(date_string) ?? [];