feat(f6.8): harden offline field flow and act documents
Android CI / RC / Android · lint, tests, debug APK, release compile (push) Successful in 3m41s
DH V2 CI / API · typecheck, tests, build (push) Successful in 31s
DH V2 CI / WEB · typecheck, build (push) Successful in 19s
Production dependency audit / API · production dependencies (push) Successful in 9s
Production dependency audit / WEB · production dependencies (push) Successful in 8s
DH V2 CI / Docker / scripts contract (push) Successful in 1m14s

This commit is contained in:
DH V2
2026-09-15 15:56:50 -03:00
parent 47cd985931
commit 079728aa6d
62 changed files with 2240 additions and 338 deletions
@@ -28,6 +28,7 @@ import {
} from './inspection-report-workflow.service';
import { InspectionReportsService } from './inspection-reports.service';
import { InspectionReportWordService } from './inspection-report-word.service';
import { InspectionActPdfService } from './inspection-act-pdf.service';
@Controller('inspection-reports')
export class InspectionReportsController {
@@ -148,3 +149,24 @@ export class InspectionActReportController {
return this.reports.generate(actId, principal, request);
}
}
@Controller('inspection-acts/:actId/pdf')
export class InspectionActPdfController {
constructor(private readonly pdf: InspectionActPdfService) {}
@Get()
@RequirePermissions('inspection_acts.read')
async content(
@Param('actId', new ParseUUIDPipe({ version: '4' })) actId: string,
@Res() response: Response,
) {
await this.pdf.ensure(actId);
const content = await this.pdf.content(actId);
response.setHeader('Content-Type', content.mimeType);
response.setHeader('Content-Length', String(content.buffer.length));
response.setHeader('Content-Disposition', `inline; filename="${content.originalName.replaceAll('"', '')}"`);
response.setHeader('Cache-Control', 'private, no-store');
response.setHeader('X-Content-Type-Options', 'nosniff');
return response.send(content.buffer);
}
}
@@ -7,7 +7,7 @@ import { InspectionDeadlineAdminService } from './inspection-deadline-admin.serv
import { InspectionDocumentDeliveryService } from './inspection-document-delivery.service';
import { InspectionReportWorkflowService } from './inspection-report-workflow.service';
import { InspectionReportWordService } from './inspection-report-word.service';
import { InspectionActReportController, InspectionReportsController } from './inspection-reports.controller';
import { InspectionActPdfController, InspectionActReportController, InspectionReportsController } from './inspection-reports.controller';
import { InspectionReportsService } from './inspection-reports.service';
import { SmtpDeliveryService } from './smtp-delivery.service';
@@ -16,6 +16,7 @@ import { SmtpDeliveryService } from './smtp-delivery.service';
controllers: [
InspectionReportsController,
InspectionActReportController,
InspectionActPdfController,
InspectionDeadlineAdminController,
DocumentDeliveryController,
],