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.

46 lines (42 loc) 1.48 kB
'use strict'; var builder = require('../../../routes/journeys/my-reports/subscriptions/builder.js'); var utils = require('../../../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 builder.SubscribedReportBuilder(req, res) .withExecutionData({ tableId: subscribeResponse.tableId }) .build(); const { schedule, reportName, name, type } = subscriptionData; await utils.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, }; }; exports.subscribe = subscribe; //# sourceMappingURL=utils.js.map