fix(f4): name recurrence response contracts for api declarations
This commit is contained in:
@@ -13,6 +13,7 @@ import { AuditAction } from '../database/entities';
|
|||||||
import { assertMobileInspector } from '../inspection-operations/mobile-inspector-policy';
|
import { assertMobileInspector } from '../inspection-operations/mobile-inspector-policy';
|
||||||
import type { SetFindingRecurrenceDto } from './dto/set-finding-recurrence.dto';
|
import type { SetFindingRecurrenceDto } from './dto/set-finding-recurrence.dto';
|
||||||
import { InspectionFindingsService } from './inspection-findings.service';
|
import { InspectionFindingsService } from './inspection-findings.service';
|
||||||
|
import type { InspectionFindingView } from './inspection-findings.service';
|
||||||
|
|
||||||
interface FindingRecurrenceContext {
|
interface FindingRecurrenceContext {
|
||||||
id: string;
|
id: string;
|
||||||
@@ -32,6 +33,8 @@ export interface FindingRecurrenceState {
|
|||||||
recurrenceOfFindingCode: string | null;
|
recurrenceOfFindingCode: string | null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export type FindingWithRecurrenceView = InspectionFindingView & FindingRecurrenceState;
|
||||||
|
|
||||||
function comparable(value: string): string {
|
function comparable(value: string): string {
|
||||||
return value
|
return value
|
||||||
.normalize('NFD')
|
.normalize('NFD')
|
||||||
@@ -104,7 +107,7 @@ export class FindingRecurrenceService {
|
|||||||
dto: SetFindingRecurrenceDto,
|
dto: SetFindingRecurrenceDto,
|
||||||
principal: AuthPrincipal,
|
principal: AuthPrincipal,
|
||||||
request: RequestWithContext,
|
request: RequestWithContext,
|
||||||
) {
|
): Promise<FindingWithRecurrenceView> {
|
||||||
assertMobileInspector(principal);
|
assertMobileInspector(principal);
|
||||||
await this.dataSource.transaction(async (manager) => {
|
await this.dataSource.transaction(async (manager) => {
|
||||||
const current = await this.requireFinding(manager, id, true);
|
const current = await this.requireFinding(manager, id, true);
|
||||||
@@ -174,7 +177,7 @@ export class FindingRecurrenceService {
|
|||||||
id: string,
|
id: string,
|
||||||
principal: AuthPrincipal,
|
principal: AuthPrincipal,
|
||||||
request: RequestWithContext,
|
request: RequestWithContext,
|
||||||
) {
|
): Promise<FindingWithRecurrenceView> {
|
||||||
assertMobileInspector(principal);
|
assertMobileInspector(principal);
|
||||||
await this.dataSource.transaction(async (manager) => {
|
await this.dataSource.transaction(async (manager) => {
|
||||||
const current = await this.requireFinding(manager, id, true);
|
const current = await this.requireFinding(manager, id, true);
|
||||||
|
|||||||
@@ -17,8 +17,10 @@ import { CreateInspectionFindingDto } from './dto/create-inspection-finding.dto'
|
|||||||
import { ListInspectionFindingsQueryDto } from './dto/list-inspection-findings-query.dto';
|
import { ListInspectionFindingsQueryDto } from './dto/list-inspection-findings-query.dto';
|
||||||
import { UpdateInspectionFindingDto } from './dto/update-inspection-finding.dto';
|
import { UpdateInspectionFindingDto } from './dto/update-inspection-finding.dto';
|
||||||
import { FindingRecurrenceService } from './finding-recurrence.service';
|
import { FindingRecurrenceService } from './finding-recurrence.service';
|
||||||
|
import type { FindingRecurrenceState } from './finding-recurrence.service';
|
||||||
import { InspectionFindingWorklistService } from './inspection-finding-worklist.service';
|
import { InspectionFindingWorklistService } from './inspection-finding-worklist.service';
|
||||||
import { InspectionFindingsService } from './inspection-findings.service';
|
import { InspectionFindingsService } from './inspection-findings.service';
|
||||||
|
import type { InspectionFindingView } from './inspection-findings.service';
|
||||||
|
|
||||||
@Controller('inspection-acts/:actId/findings')
|
@Controller('inspection-acts/:actId/findings')
|
||||||
export class InspectionActFindingsController {
|
export class InspectionActFindingsController {
|
||||||
@@ -58,7 +60,9 @@ export class InspectionFindingsController {
|
|||||||
|
|
||||||
@Get(':id')
|
@Get(':id')
|
||||||
@RequirePermissions('inspection_findings.read')
|
@RequirePermissions('inspection_findings.read')
|
||||||
async get(@Param('id', new ParseUUIDPipe({ version: '4' })) id: string) {
|
async get(
|
||||||
|
@Param('id', new ParseUUIDPipe({ version: '4' })) id: string,
|
||||||
|
): Promise<InspectionFindingView & FindingRecurrenceState> {
|
||||||
const [finding, recurrence] = await Promise.all([
|
const [finding, recurrence] = await Promise.all([
|
||||||
this.findings.getById(id),
|
this.findings.getById(id),
|
||||||
this.recurrence.state(id),
|
this.recurrence.state(id),
|
||||||
|
|||||||
Reference in New Issue
Block a user