@ministryofjustice/hmpps-digital-prison-reporting-frontend
Version:
The Digital Prison Reporting Frontend contains templates and code to help display data effectively in UI applications.
65 lines (61 loc) • 2.27 kB
JavaScript
;
var filtersTypeEnum = require('../../../../components/_filters/filtersTypeEnum.js');
var utils = require('../utils.js');
var ErrorHandler = require('../../../../utils/ErrorHandler/ErrorHandler.js');
var personalisationUtils = require('../../../../utils/Personalisation/personalisationUtils.js');
class ViewSyncController {
layoutPath;
services;
constructor(layoutPath, services) {
this.layoutPath = layoutPath;
this.services = services;
}
resetFilters = async (req, res, next) => {
try {
const { id, reportId } = req.params;
const sessionKey = { id, reportId };
await utils.default.resetFilters(req, res, sessionKey);
}
catch (error) {
req.body = {
title: 'Failed to reset filters',
error: new ErrorHandler.ErrorHandler(error).formatError(),
...(req.body && { ...req.body }),
};
next(error);
}
};
// -----------------------------
// Save Defaults
// -----------------------------
saveDefaultFilterValues = async (req, res, next) => {
try {
personalisationUtils.default.saveDefaults(filtersTypeEnum.FiltersType.INTERACTIVE, res, req, this.services);
res.redirect(`${req.baseUrl}?defaultsSaved=true`);
}
catch (error) {
req.body = {
title: 'Failed to save defaults',
error: new ErrorHandler.ErrorHandler(error).formatError(),
...(req.body && { ...req.body }),
};
next(error);
}
};
removeDefaultFilterValues = async (req, res, next) => {
try {
personalisationUtils.default.removeDefaults(filtersTypeEnum.FiltersType.INTERACTIVE, res, req, this.services);
res.redirect(req.baseUrl);
}
catch (error) {
req.body = {
title: 'Failed to remove defaults',
error: new ErrorHandler.ErrorHandler(error).formatError(),
...(req.body && { ...req.body }),
};
next(error);
}
};
}
exports.ViewSyncController = ViewSyncController;
//# sourceMappingURL=controller.js.map