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.

63 lines (59 loc) 1.89 kB
'use strict'; var builder = require('../builder.js'); var types = require('../../../../utils/ReportStatus/types.js'); class SubscribedReportBuilder extends builder.StoreItemBuilder { req; reportData; constructor(req, res) { super(res); this.req = req; } // Builder methods buildReportData = () => { const requestFormData = this.req.body; this.reportType = requestFormData.type; this.reportData = this.buildReportMetaData(requestFormData); }; buildUrls = () => { const origin = this.req.get('host') || ''; const report = this.buildReportUrls(); return { origin, report, }; }; buildReportUrls = () => { const origin = this.req.get('host') || ''; const { reportId } = this.reportData; const { id } = this.reportData; const { type } = this.reportData; const { tableId } = this.executionData; const fullUrl = `${this.req.protocol}://${origin}/dpr/view-report/async/${type}/${reportId}/${id}/${tableId}/report`; const parsed = new URL(fullUrl); const { search } = parsed; return { fullUrl, search, }; }; buildStatus = () => { return types.RequestStatus.READY; }; build = () => { this.buildReportData(); const url = this.buildUrls(); const status = this.buildStatus(); const definitionsPath = this.buidDefinitionsPath(); const subscribedReportData = { ...this.reportData, ...this.executionData, ...(definitionsPath && definitionsPath), url, status, timestamp: {}, }; return subscribedReportData; }; } exports.SubscribedReportBuilder = SubscribedReportBuilder; //# sourceMappingURL=builder.js.map