import { Controller, Get, ParseIntPipe, Query, Req, UnauthorizedException} from "@nestjs/common"; import { RolesAllowed } from "src/common/decorators/roles.decorators"; import { GetTimesheetsOverviewService } from "src/time-and-attendance/time-tracker/timesheets/services/timesheet-get-overview.service"; import { Roles as RoleEnum } from '.prisma/client'; @Controller('timesheets') export class TimesheetController { constructor( private readonly timesheetOverview: GetTimesheetsOverviewService ){} @Get() @RolesAllowed(RoleEnum.SUPERVISOR, RoleEnum.HR, RoleEnum.ACCOUNTING, RoleEnum.ADMIN) async getTimesheetByIds( @Req() req, @Query('year', ParseIntPipe) year:number, @Query('period_number', ParseIntPipe) period_number: number) { const email = req.user?.email; if(!email) throw new UnauthorizedException('Unauthorized User');  return this.timesheetOverview.getTimesheetsForEmployeeByPeriod(email, year, period_number); } }