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.

44 lines (41 loc) 1.47 kB
import { SubscribedReportBuilder } from '../../../routes/journeys/my-reports/subscriptions/builder.js'; import { addMyReport } from '../../../routes/journeys/my-reports/utils.js'; /** * Subscribes a user to a scheduled report * * @param {Request} req * @param {Response} res * @param {Services} services * @return {*} */ const subscribe = async (req, res, services) => { const { dprUser } = res.locals; if (!dprUser) { throw new Error('No Dpr User'); } if (!req.body) { throw new Error('No body in request'); } const { token, id: userId } = dprUser; const { reportId, id } = req.params; const { returnTo } = req.body; const subscribeResponse = await services.subscriptionService.subscribe(token, reportId, id); if (!subscribeResponse) { return { returnTo, }; } const subscriptionData = new SubscribedReportBuilder(req, res) .withExecutionData({ tableId: subscribeResponse.tableId }) .build(); const { schedule, reportName, name, type } = subscriptionData; await addMyReport('subscriptions', subscriptionData, services, userId); req.flash('DPR_SUBSCRIBED', JSON.stringify({ message: `<p>You have subscribed to <strong>${reportName} - ${name}</strong> ${type}.</p><p>This report refreshes <strong>${schedule}</strong></p>`, })); return { returnTo, }; }; export { subscribe }; //# sourceMappingURL=utils.js.map