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.

36 lines (33 loc) 1.63 kB
import { getActiveJourneyValue } from '../../../utils/sessionHelper.js'; import localsHelper from '../../../utils/localsHelper.js'; import DownloadUtils from './utils.js'; class DownloadReportController { layoutPath; services; constructor(layoutPath, services) { this.layoutPath = layoutPath; this.services = services; } POST = async (req, res) => { const { dprUser } = localsHelper.getValues(res); const { reportId, id, tableId } = req.params; const sessionKey = tableId ? { reportId, id, tableId } : { reportId, id }; const currentReportSearch = getActiveJourneyValue(req, sessionKey, 'currentReportSearch'); const currentReportPathname = getActiveJourneyValue(req, sessionKey, 'currentReportPathname'); // Initialises the redirect back to the report let redirect = currentReportPathname && currentReportPathname.includes('/download-disabled') ? currentReportPathname : `${currentReportPathname}/download-disabled`; redirect = currentReportSearch ? `${redirect}${currentReportSearch}` : redirect; // Check if user has enabled the report for download const canDownloadReport = await this.services.downloadPermissionService.downloadEnabledForReport(dprUser.id, reportId, id); if (canDownloadReport) { await DownloadUtils.downloadReport({ req, res, services: this.services }); } else { res.redirect(redirect); } }; } export { DownloadReportController, DownloadReportController as default }; //# sourceMappingURL=controller.js.map