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.

51 lines (50 loc) 2.19 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const reportStoreService_1 = __importDefault(require("./reportStoreService")); const logger_1 = __importDefault(require("../utils/logger")); class DownloadPermissionService extends reportStoreService_1.default { constructor(userDataStore) { super(userDataStore); logger_1.default.info('Service created: DownloadPermissionService'); } async saveDownloadPermissionData(userId, reportId, id) { const userConfig = await this.getState(userId); // Init downloads if not present if (!userConfig.downloadPermissions) { userConfig.downloadPermissions = []; } const permissionExists = await this.downloadEnabled(userId, reportId, id); if (!permissionExists) { userConfig.downloadPermissions.push({ reportId, id }); logger_1.default.info(`Download permission granted for ${userId}: ${reportId} - ${id}`); await this.saveState(userId, userConfig); } } async removeDownloadPermissionData(userId, reportId, id) { const userConfig = await this.getState(userId); const index = userConfig.downloadPermissions.findIndex((downloadConfig) => { return downloadConfig.id === id; }); if (index >= 0) { userConfig.downloadPermissions.splice(index, 1); } await this.saveState(userId, userConfig); } async downloadEnabled(userId, reportId, id) { const userConfig = await this.getState(userId); if (!userConfig.downloadPermissions) return false; const config = userConfig.downloadPermissions.find((downloadConfig) => { return downloadConfig.id === id && downloadConfig.reportId === reportId; }); return !!config; } async getAllDownloadPermissions(userId) { const userConfig = await this.getState(userId); return userConfig.downloadPermissions; } } exports.default = DownloadPermissionService;