@ministryofjustice/hmpps-digital-prison-reporting-frontend
Version:
The Digital Prison Reporting Frontend contains templates and code to help display data effectively in UI applications.
49 lines (48 loc) • 2.08 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = routes;
const utils_1 = __importDefault(require("../components/user-reports/viewed/utils"));
const utils_2 = __importDefault(require("../components/user-reports/utils"));
const localsHelper_1 = __importDefault(require("../utils/localsHelper"));
const logger_1 = __importDefault(require("../utils/logger"));
function routes({ router, services, layoutPath, prefix, }) {
logger_1.default.info('Initialiasing routes: Recently Viewed');
const getExpiredStatus = async (req, res, next) => {
try {
const response = await utils_2.default.getExpiredStatus({
req,
res,
services,
storeService: services.recentlyViewedService,
});
res.send({ isExpired: response });
}
catch (error) {
res.send({ status: 'FAILED' });
}
};
const removeViewedItemHandler = async (req, res, next) => {
var _a;
const userId = ((_a = res.locals.user) === null || _a === void 0 ? void 0 : _a.uuid) ? res.locals.user.uuid : 'userId';
await services.recentlyViewedService.removeReport(req.body.executionId, userId);
res.end();
};
router.get(`${prefix}/async-reports/viewed`, async (req, res) => {
const { recentlyViewedReports } = localsHelper_1.default.getValues(res);
res.render(`dpr/views/async-reports`, {
title: 'Recently viewed reports',
layoutPath,
...(await utils_2.default.renderList({
reportsData: recentlyViewedReports,
filterFunction: utils_1.default.filterReports,
res,
type: 'viewed',
})),
});
});
router.post('/dpr/getExpiredStatus/', getExpiredStatus);
router.post('/dpr/removeViewedItem/', removeViewedItemHandler);
}