20 lines
980 B
TypeScript
20 lines
980 B
TypeScript
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);
|
||
}
|
||
}
|