@ministryofjustice/hmpps-digital-prison-reporting-frontend
Version:
The Digital Prison Reporting Frontend contains templates and code to help display data effectively in UI applications.
78 lines (77 loc) • 3.06 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
/* eslint-disable no-param-reassign */
const requestedReportService_1 = __importDefault(require("../services/requestedReportService"));
const recentlyViewedService_1 = __importDefault(require("../services/recentlyViewedService"));
const bookmarkService_1 = __importDefault(require("../services/bookmarkService"));
const downloadPermissionService_1 = __importDefault(require("../services/downloadPermissionService"));
const reportingService_1 = __importDefault(require("../services/reportingService"));
const dashboardService_1 = __importDefault(require("../services/dashboardService"));
const logger_1 = __importDefault(require("./logger"));
const createDprServices = (clients, reportStoreConfig = {}) => {
logger_1.default.info('Creating DPR services...');
const { reportingClient, dashboardClient, reportDataStore } = clients;
let services = {};
if (reportingClient) {
services = createReportingService(services, reportingClient);
}
if (dashboardClient) {
services = createDashboardService(services, dashboardClient);
}
if (reportDataStore) {
services = createReportStoreServices(reportDataStore, services, reportStoreConfig);
}
return services;
};
const createReportingService = (services, client) => {
services = {
...services,
reportingService: new reportingService_1.default(client),
};
return services;
};
const createDashboardService = (services, client) => {
services = {
...services,
dashboardService: new dashboardService_1.default(client),
};
return services;
};
const createReportStoreServices = (reportDataStore, services, config = {}) => {
services = {
...services,
requestedReportService: new requestedReportService_1.default(reportDataStore),
recentlyViewedService: new recentlyViewedService_1.default(reportDataStore),
};
if (config.bookmarking === undefined || config.bookmarking) {
services = createBookmarkService(services, reportDataStore);
}
else {
logger_1.default.info('Service Disabled: BookmarkService');
}
if (config.download === undefined || config.download) {
services = createDownloadService(services, reportDataStore);
}
else {
logger_1.default.info('Service Disabled: DownloadPermissionService');
}
return services;
};
const createDownloadService = (services, reportDataStore) => {
services = {
...services,
downloadPermissionService: new downloadPermissionService_1.default(reportDataStore),
};
return services;
};
const createBookmarkService = (services, reportDataStore) => {
services = {
...services,
bookmarkService: new bookmarkService_1.default(reportDataStore),
};
return services;
};
exports.default = createDprServices;