UNPKG

@ministryofjustice/hmpps-digital-prison-reporting-frontend

Version:

The Digital Prison Reporting Frontend contains templates and code to help display data effectively in UI applications.

69 lines (64 loc) 2.82 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var localsHelper = require('../../../../utils/localsHelper.js'); var captureError = require('../../../../utils/captureError.js'); class MissingReportFormController { layoutPath; missingReportService; reportingService; constructor(layoutPath, services) { this.layoutPath = layoutPath; this.missingReportService = services.missingReportService; this.reportingService = services.reportingService; } GET = async (req, res, next) => { const { token, csrfToken, definitionsPath, dprUser } = localsHelper.default.getValues(res); const { reportId, variantId } = req.params; const reportDefinition = await this.reportingService.getDefinition(token, reportId, variantId, definitionsPath ?? 'definitions/prisons/missing'); const { variant, name } = reportDefinition; try { res.render(`dpr/routes/journeys/request-missing-report/form/view`, { title: 'This report is not available', report: { reportId, variantId, reportName: name, name: variant.name, description: variant.description || reportDefinition.description, }, user: dprUser, csrfToken, layoutPath: this.layoutPath, postEndpoint: `/dpr/request-missing-report/${reportId}/${variantId}/form/submit`, }); } catch (error) { next(error); } }; POST = async (req, res, next) => { const { body } = req; const { reportId, variantId, reportName, variantName, 'more-detail': requestDetails } = body; const { token } = localsHelper.default.getValues(res); try { const submission = this.missingReportService.submitMissingReportEntry(token, reportId, variantId, requestDetails); if (submission) { submission.then(() => { const queryParams = `reportName=${reportName}&name=${variantName}&reportId=${reportId}&variantId=${variantId}`; const redirect = `./submitted?${queryParams}`; res.redirect(redirect); }, err => { captureError.captureDprError(err, 'Submit missing report entry error', { reportId, variantId, requestDetails }); next(err); }); } } catch (error) { captureError.captureDprError(error); next(error); } }; } exports.MissingReportFormController = MissingReportFormController; exports.default = MissingReportFormController; //# sourceMappingURL=controller.js.map