feat(f4): expose JEFE deadline policy endpoints
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
import { Body, Controller, Delete, Get, Param, Put, Req } from '@nestjs/common';
|
||||
import { CurrentAuth } from '../auth/decorators/current-auth.decorator';
|
||||
import { RequirePermissions } from '../authorization/decorators/require-permissions.decorator';
|
||||
import type { AuthPrincipal, RequestWithContext } from '../common/http/request-context';
|
||||
import { UpdateDeadlinePolicyDto, UpsertBusinessCalendarDayDto } from './dto/update-deadline-policy.dto';
|
||||
import { InspectionDeadlineAdminService } from './inspection-deadline-admin.service';
|
||||
|
||||
@Controller('inspection-deadlines')
|
||||
export class InspectionDeadlineAdminController {
|
||||
constructor(private readonly deadlines: InspectionDeadlineAdminService) {}
|
||||
|
||||
@Get('policy')
|
||||
@RequirePermissions('inspections.read')
|
||||
policy() {
|
||||
return this.deadlines.policy();
|
||||
}
|
||||
|
||||
@Put('policy')
|
||||
@RequirePermissions('inspections.manage')
|
||||
updatePolicy(
|
||||
@Body() dto: UpdateDeadlinePolicyDto,
|
||||
@CurrentAuth() principal: AuthPrincipal,
|
||||
@Req() request: RequestWithContext,
|
||||
) {
|
||||
return this.deadlines.updatePolicy(dto, principal, request);
|
||||
}
|
||||
|
||||
@Get('calendar')
|
||||
@RequirePermissions('inspections.read')
|
||||
calendar() {
|
||||
return this.deadlines.calendar();
|
||||
}
|
||||
|
||||
@Put('calendar')
|
||||
@RequirePermissions('inspections.manage')
|
||||
upsertDay(
|
||||
@Body() dto: UpsertBusinessCalendarDayDto,
|
||||
@CurrentAuth() principal: AuthPrincipal,
|
||||
@Req() request: RequestWithContext,
|
||||
) {
|
||||
return this.deadlines.upsertCalendarDay(dto, principal, request);
|
||||
}
|
||||
|
||||
@Delete('calendar/:date')
|
||||
@RequirePermissions('inspections.manage')
|
||||
removeDay(
|
||||
@Param('date') date: string,
|
||||
@CurrentAuth() principal: AuthPrincipal,
|
||||
@Req() request: RequestWithContext,
|
||||
) {
|
||||
return this.deadlines.removeCalendarDay(date, principal, request);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user