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.

61 lines (58 loc) 1.85 kB
import { StoreItemBuilder } from '../builder.js'; import { RequestStatus } from '../../../../utils/ReportStatus/types.js'; class SubscribedReportBuilder extends 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 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; }; } export { SubscribedReportBuilder }; //# sourceMappingURL=builder.js.map