@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
JavaScript
;
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