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.

45 lines (41 loc) 2.29 kB
'use strict'; var express = require('express'); var setUpActiveReport = require('../../../middleware/setUpActiveReport.js'); var controller = require('./controller.js'); var routes = require('./filters/routes.js'); var routes$1 = require('./status/routes.js'); var reportAuthoriser = require('../../../middleware/reportAuthoriser.js'); var captureError = require('../../../utils/captureError.js'); var setupCurrentDefinition = require('../../../middleware/setupCurrentDefinition.js'); /* eslint-disable no-param-reassign */ function Routes({ layoutPath, services }) { const router = express.Router({ mergeParams: true }); const controller$1 = new controller.RequestReportController(layoutPath, services); router.post(`/:type/:reportId/:id/:executionId/cancel`, controller$1.CANCEL); // Pre-request filters page router.use(`/:type/:reportId/:id/filters`, setupCurrentDefinition.default(services), reportAuthoriser.default(services, layoutPath), setUpActiveReport.storeActiveReportSessionData({ services }), routes.default({ layoutPath, services }), controller$1.errorHandler); // Polling current status page router.use(`/:type/:reportId/:id/:executionId/status`, setupCurrentDefinition.default(services), reportAuthoriser.default(services, layoutPath), setUpActiveReport.storeActiveReportSessionData({ services }), routes$1.default({ layoutPath, services }), controller$1.errorHandler); router.get(`/:type/:reportId/:id/:executionId/cancel/failed`, (req, res, _next) => { const body = JSON.parse(req.flash('ERROR_BODY')?.[0] || ''); const params = JSON.parse(req.flash('ERROR_PARAMS')?.[0] || ''); const error = req.flash('ERROR'); captureError.captureDprError(error); res.render(`dpr/routes/journeys/view-report/error`, { layoutPath, ...(body && { ...body }), ...(params && { ...params }), error, params, }); }); return router; } const RequestReportRoutes = ({ services, path, layoutPath, }) => { const router = express.Router({ mergeParams: true }); router.use(path, Routes({ services, layoutPath })); return router; }; exports.RequestReportRoutes = RequestReportRoutes; exports.Routes = Routes; //# sourceMappingURL=routes.js.map