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