42 lines
1.8 KiB
TypeScript
42 lines
1.8 KiB
TypeScript
import { Body, Controller, Get, Param, ParseUUIDPipe, Patch, Post, Query, 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 { ListVerificationPlanningQueryDto } from './dto/list-verification-planning-query.dto';
|
|
import { PlanVerificationVisitDto } from './dto/plan-verification-visit.dto';
|
|
import { RecordVerificationResultDto } from './dto/record-verification-result.dto';
|
|
import { InspectionVerificationsService } from './inspection-verifications.service';
|
|
|
|
@Controller('inspection-verifications')
|
|
export class InspectionVerificationsController {
|
|
constructor(private readonly verifications: InspectionVerificationsService) {}
|
|
|
|
@Get()
|
|
@RequirePermissions('inspection_findings.read')
|
|
list(@Query() query: ListVerificationPlanningQueryDto) {
|
|
return this.verifications.listQueue(query);
|
|
}
|
|
|
|
@Post('plan')
|
|
@RequirePermissions('inspection_findings.read', 'inspection_verifications.plan')
|
|
plan(
|
|
@Body() dto: PlanVerificationVisitDto,
|
|
@CurrentAuth() principal: AuthPrincipal,
|
|
@Req() request: RequestWithContext,
|
|
) {
|
|
return this.verifications.planVisit(dto, principal, request);
|
|
}
|
|
|
|
@Patch('visits/:visitId/findings/:findingId/result')
|
|
@RequirePermissions('inspections.execute')
|
|
recordResult(
|
|
@Param('visitId', new ParseUUIDPipe({ version: '4' })) visitId: string,
|
|
@Param('findingId', new ParseUUIDPipe({ version: '4' })) findingId: string,
|
|
@Body() dto: RecordVerificationResultDto,
|
|
@CurrentAuth() principal: AuthPrincipal,
|
|
@Req() request: RequestWithContext,
|
|
) {
|
|
return this.verifications.recordResult(visitId, findingId, dto, principal, request);
|
|
}
|
|
}
|