@ministryofjustice/hmpps-digital-prison-reporting-frontend
Version:
The Digital Prison Reporting Frontend contains templates and code to help display data effectively in UI applications.
38 lines (35 loc) • 1.34 kB
JavaScript
import localsHelper from '../../utils/localsHelper.js';
/**
* Setup the subscription config
*
* @param {Request} req
* @param {Response} res
* @param {(string | undefined)} schedule
* @return {*} {(SubscriptionActionConfig | undefined)}
*/
const setupSubscriptionConfig = async (req, res, reportId, id, schedule, services) => {
const { csrfToken, subscriptionsEnabled, dprUser } = localsHelper.getValues(res);
if (!subscriptionsEnabled || !schedule)
return undefined;
let subscribed = false;
let subscriptionUrl;
subscribed = (await services.subscriptionStoreService.isSubscribed(reportId, id, dprUser.id)) || false;
if (subscribed) {
const subscribedReport = await services.subscriptionStoreService.getSubscription(reportId, id, dprUser.id);
subscriptionUrl = subscribedReport?.url?.report?.fullUrl;
}
const { subscribePath } = localsHelper.getRouteLocals(res);
const actonPath = `${subscribePath}/${reportId}/${id}`;
return {
schedule,
subscribeAction: `${actonPath}/subscribe`,
unsubscribeAction: `${actonPath}/unsubscribe`,
subscribed,
subscriptionUrl,
subscriptionsEnabled,
currentUrl: req.originalUrl || '/',
csrfToken,
};
};
export { setupSubscriptionConfig };
//# sourceMappingURL=utils.js.map