@ministryofjustice/hmpps-digital-prison-reporting-frontend
Version:
The Digital Prison Reporting Frontend contains templates and code to help display data effectively in UI applications.
54 lines (49 loc) • 2.61 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var urlHelper = require('../utils/urlHelper.js');
var logger = require('../utils/logger.js');
const setupNestedRoute = () => {
return (req, res, next) => {
const locals = res.app.locals.dprPaths;
if (locals) {
// Initialise originals once
if (!locals.original) {
locals.original = { ...locals };
}
const base = req.baseUrl && req.baseUrl.length > 0 ? req.baseUrl : undefined;
const { original } = locals;
// CASE 1: no baseUrl so reset to originals
if (!base) {
locals.nestedBaseUrl = undefined;
Object.assign(locals, original);
return next();
}
// CASE 2: baseUrl is the SAME as last time so skip
if (locals.nestedBaseUrl === base) {
return next();
}
logger.default.info('Running nested-route middleware', JSON.stringify({
routerBase: req.baseUrl,
mountPoint: req.originalUrl,
}));
// CASE 3: baseUrl is NEW so apply nested version
locals.nestedBaseUrl = base;
locals.bookmarkActionEndpoint = urlHelper.setNestedPath(original.bookmarkActionEndpoint, base);
locals.subscribePath = urlHelper.setNestedPath(original.subscribePath, base);
locals.downloadActionEndpoint = urlHelper.setNestedPath(original.downloadActionEndpoint, base);
locals.productCollectionEndpoint = urlHelper.setNestedPath(original.productCollectionEndpoint, base);
locals.bookmarkListPath = urlHelper.setNestedPath(original.bookmarkListPath, base);
locals.requestedListPath = urlHelper.setNestedPath(original.requestedListPath, base);
locals.recentlyViewedListPath = urlHelper.setNestedPath(original.recentlyViewedListPath, base);
locals.reportsCatalogue = urlHelper.setNestedPath(original.reportsCatalogue, base);
locals.userReportsList = urlHelper.setNestedPath(original.userReportsList, base);
locals.dprHomepage = urlHelper.setNestedPath(original.dprHomepage, base);
locals.requestReportPath = urlHelper.setNestedPath(original.requestReportPath, base);
locals.viewReportPath = urlHelper.setNestedPath(original.viewReportPath, base);
}
return next();
};
};
exports.default = setupNestedRoute;
exports.setupNestedRoute = setupNestedRoute;
//# sourceMappingURL=setUpNestedRoute.js.map