@ministryofjustice/hmpps-digital-prison-reporting-frontend 4.14.1 → 4.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dpr/all.mjs +2 -0
- package/dpr/all.scss +4 -0
- package/dpr/components/_catalogue/catalogue-list/utils.test.ts +1 -1
- package/dpr/components/_charts/chart/clientClass.mjs +4 -3
- package/dpr/components/_charts/chart/heatmap/clientClass.mjs +175 -0
- package/dpr/components/_charts/chart/heatmap/utils.js +2 -0
- package/dpr/components/_charts/chart/heatmap/utils.js.map +7 -0
- package/dpr/components/_charts/chart/heatmap/utils.ts +182 -0
- package/dpr/components/_charts/chart/styles.scss +4 -0
- package/dpr/components/_charts/utils.js +1 -1
- package/dpr/components/_charts/utils.js.map +3 -3
- package/dpr/components/_charts/utils.test.ts +4 -1
- package/dpr/components/_charts/utils.ts +73 -27
- package/dpr/components/_dashboards/dashboard/types.js +1 -1
- package/dpr/components/_dashboards/dashboard/types.js.map +2 -2
- package/dpr/components/_dashboards/dashboard/types.ts +13 -1
- package/dpr/components/_dashboards/dashboard-list/utils.js +1 -1
- package/dpr/components/_dashboards/dashboard-list/utils.js.map +3 -3
- package/dpr/components/_dashboards/dashboard-list/utils.test.ts +1 -0
- package/dpr/components/_dashboards/dashboard-list/utils.ts +4 -1
- package/dpr/components/_filters/types.d.js.map +1 -1
- package/dpr/components/_filters/types.d.ts +12 -8
- package/dpr/components/_filters/utils.js +1 -1
- package/dpr/components/_filters/utils.js.map +3 -3
- package/dpr/components/_filters/utils.ts +24 -2
- package/dpr/data/dashboardClient.js +1 -1
- package/dpr/data/dashboardClient.js.map +2 -2
- package/dpr/data/dashboardClient.ts +1 -1
- package/dpr/routes/journeys/request-report/filters/controller.js +1 -1
- package/dpr/routes/journeys/request-report/filters/controller.js.map +3 -3
- package/dpr/routes/journeys/request-report/filters/controller.ts +6 -2
- package/dpr/routes/journeys/request-report/filters/utils.js +1 -1
- package/dpr/routes/journeys/request-report/filters/utils.js.map +2 -2
- package/dpr/routes/journeys/request-report/filters/utils.ts +9 -3
- package/dpr/routes/journeys/view-report/async/dashboard/utils.js +1 -1
- package/dpr/routes/journeys/view-report/async/dashboard/utils.js.map +3 -3
- package/dpr/routes/journeys/view-report/async/dashboard/utils.ts +12 -3
- package/dpr/services/dashboardService.js +1 -1
- package/dpr/services/dashboardService.js.map +2 -2
- package/dpr/services/dashboardService.ts +1 -1
- package/dpr/types/Charts.js +1 -1
- package/dpr/types/Charts.js.map +1 -1
- package/dpr/types/Charts.ts +10 -3
- package/dpr/types/ExecutionData.d.js +1 -1
- package/dpr/types/ExecutionData.d.js.map +1 -1
- package/dpr/types/ExecutionData.d.ts +1 -0
- package/dpr/types/ReportQuery.js +1 -1
- package/dpr/types/ReportQuery.js.map +2 -2
- package/dpr/types/ReportQuery.ts +1 -0
- package/dpr/utils/DateMapper/DateMapper.js +1 -1
- package/dpr/utils/DateMapper/DateMapper.js.map +2 -2
- package/dpr/utils/DateMapper/DateMapper.ts +4 -0
- package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.js +1 -1
- package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.js.map +3 -3
- package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.ts +1 -41
- package/dpr/utils/UserStoreItemBuilder.js +1 -1
- package/dpr/utils/UserStoreItemBuilder.js.map +3 -3
- package/dpr/utils/UserStoreItemBuilder.ts +5 -3
- package/dpr/utils/requestStatusHelper.js +1 -1
- package/dpr/utils/requestStatusHelper.js.map +2 -2
- package/dpr/utils/requestStatusHelper.ts +1 -1
- package/package.json +5 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/dpr/data/dashboardClient.ts"],
|
|
4
|
-
"sourcesContent": ["import { DashboardDefinition } from '../components/_dashboards/dashboard/types'\nimport logger from '../utils/logger'\nimport RestClient from './restClient'\nimport Dict = NodeJS.Dict\nimport { ApiConfig } from './types'\n\nclass DashboardClient {\n restClient: RestClient\n\n constructor(config: ApiConfig) {\n this.restClient = new RestClient('Dashboard API Client', config)\n }\n\n getDefinition(\n token: string,\n dashboardId: string,\n dpdId: string,\n definitionsPath?: string,\n ): Promise<DashboardDefinition> {\n this.logInfo('Get definition:', { dpdId, dashboardId })\n const query = {\n dataProductDefinitionsPath: definitionsPath,\n }\n return this.restClient\n .get({\n path: `/definitions/${dpdId}/dashboards/${dashboardId}`,\n query,\n token,\n })\n .then((response) => <DashboardDefinition>response)\n }\n\n requestAsyncDashboard(\n token: string,\n reportId: string,\n dashboardId: string,\n query: Record<string, string | boolean | number>,\n ): Promise<Dict<string>> {\n this.logInfo('Request dashboard:', { reportId, dashboardId })\n\n return this.restClient\n .get({\n path: `/async/dashboards/${reportId}/${dashboardId}`,\n token,\n query,\n })\n .then((response) => <Dict<string>>response)\n }\n\n getAsyncDashboard(\n token: string,\n reportId: string,\n dashboardId: string,\n tableId: string,\n query: Dict<string | number>,\n ): Promise<Array<Dict<string>>> {\n this.logInfo('Get dashboard:', { reportId, dashboardId, tableId })\n\n return this.restClient\n .get({\n path: `/reports/${reportId}/dashboards/${dashboardId}/tables/${tableId}/result`,\n token,\n query,\n })\n .then((response) => <Array<Dict<string>>>response)\n }\n\n getAsyncStatus(\n token: string,\n reportId: string,\n dashboardId: string,\n executionId: string,\n
|
|
5
|
-
"mappings": "6iBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAAmB,8BACnBC,EAAuB,2BAIvB,MAAMJ,CAAgB,CAGpB,YAAYK,EAAmB,CAC7B,KAAK,WAAa,IAAI,EAAAC,QAAW,uBAAwBD,CAAM,CACjE,CAEA,cACEE,EACAC,EACAC,EACAC,EAC8B,CAC9B,KAAK,QAAQ,kBAAmB,CAAE,MAAAD,EAAO,YAAAD,CAAY,CAAC,EACtD,MAAMG,EAAQ,CACZ,2BAA4BD,CAC9B,EACA,OAAO,KAAK,WACT,IAAI,CACH,KAAM,gBAAgBD,CAAK,eAAeD,CAAW,GACrD,MAAAG,EACA,MAAAJ,CACF,CAAC,EACA,KAAMK,GAAkCA,CAAQ,CACrD,CAEA,sBACEL,EACAM,EACAL,EACAG,EACuB,CACvB,YAAK,QAAQ,qBAAsB,CAAE,SAAAE,EAAU,YAAAL,CAAY,CAAC,EAErD,KAAK,WACT,IAAI,CACH,KAAM,qBAAqBK,CAAQ,IAAIL,CAAW,GAClD,MAAAD,EACA,MAAAI,CACF,CAAC,EACA,KAAMC,GAA2BA,CAAQ,CAC9C,CAEA,kBACEL,EACAM,EACAL,EACAM,EACAH,EAC8B,CAC9B,YAAK,QAAQ,iBAAkB,CAAE,SAAAE,EAAU,YAAAL,EAAa,QAAAM,CAAQ,CAAC,EAE1D,KAAK,WACT,IAAI,CACH,KAAM,YAAYD,CAAQ,eAAeL,CAAW,WAAWM,CAAO,UACtE,MAAAP,EACA,MAAAI,CACF,CAAC,EACA,KAAMC,GAAkCA,CAAQ,CACrD,CAEA,eACEL,EACAM,EACAL,EACAO,
|
|
4
|
+
"sourcesContent": ["import { DashboardDefinition } from '../components/_dashboards/dashboard/types'\nimport logger from '../utils/logger'\nimport RestClient from './restClient'\nimport Dict = NodeJS.Dict\nimport { ApiConfig } from './types'\n\nclass DashboardClient {\n restClient: RestClient\n\n constructor(config: ApiConfig) {\n this.restClient = new RestClient('Dashboard API Client', config)\n }\n\n getDefinition(\n token: string,\n dashboardId: string,\n dpdId: string,\n definitionsPath?: string,\n ): Promise<DashboardDefinition> {\n this.logInfo('Get definition:', { dpdId, dashboardId })\n const query = {\n dataProductDefinitionsPath: definitionsPath,\n }\n return this.restClient\n .get({\n path: `/definitions/${dpdId}/dashboards/${dashboardId}`,\n query,\n token,\n })\n .then((response) => <DashboardDefinition>response)\n }\n\n requestAsyncDashboard(\n token: string,\n reportId: string,\n dashboardId: string,\n query: Record<string, string | boolean | number>,\n ): Promise<Dict<string>> {\n this.logInfo('Request dashboard:', { reportId, dashboardId })\n\n return this.restClient\n .get({\n path: `/async/dashboards/${reportId}/${dashboardId}`,\n token,\n query,\n })\n .then((response) => <Dict<string>>response)\n }\n\n getAsyncDashboard(\n token: string,\n reportId: string,\n dashboardId: string,\n tableId: string,\n query: Dict<string | number>,\n ): Promise<Array<Dict<string>>> {\n this.logInfo('Get dashboard:', { reportId, dashboardId, tableId })\n\n return this.restClient\n .get({\n path: `/reports/${reportId}/dashboards/${dashboardId}/tables/${tableId}/result`,\n token,\n query,\n })\n .then((response) => <Array<Dict<string>>>response)\n }\n\n getAsyncStatus(\n token: string,\n reportId: string,\n dashboardId: string,\n executionId: string,\n tableId?: string,\n dataProductDefinitionsPath?: string,\n ): Promise<Dict<string>> {\n this.logInfo('Get status:', { reportId, dashboardId, executionId, tableId })\n\n return this.restClient\n .get({\n path: `/reports/${reportId}/dashboards/${dashboardId}/statements/${executionId}/status`,\n token,\n query: {\n dataProductDefinitionsPath,\n tableId,\n },\n })\n .then((response) => <Dict<string>>response)\n }\n\n cancelAsyncRequest(\n token: string,\n reportId: string,\n dashboardId: string,\n executionId: string,\n dataProductDefinitionsPath: string,\n ): Promise<Dict<string>> {\n this.logInfo('Cancel request:', { reportId, dashboardId, executionId })\n\n return this.restClient\n .delete({\n path: `/reports/${reportId}/dashboards/${dashboardId}/statements/${executionId}`,\n token,\n query: {\n dataProductDefinitionsPath,\n },\n })\n .then((response) => <Dict<string>>response)\n }\n\n logInfo(title: string, args?: Dict<string>) {\n logger.info(`Dashboard client: ${title}:`)\n if (args && Object.keys(args).length) logger.info(JSON.stringify(args, null, 2))\n }\n}\n\nexport { DashboardClient }\nexport default DashboardClient\n"],
|
|
5
|
+
"mappings": "6iBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAAmB,8BACnBC,EAAuB,2BAIvB,MAAMJ,CAAgB,CAGpB,YAAYK,EAAmB,CAC7B,KAAK,WAAa,IAAI,EAAAC,QAAW,uBAAwBD,CAAM,CACjE,CAEA,cACEE,EACAC,EACAC,EACAC,EAC8B,CAC9B,KAAK,QAAQ,kBAAmB,CAAE,MAAAD,EAAO,YAAAD,CAAY,CAAC,EACtD,MAAMG,EAAQ,CACZ,2BAA4BD,CAC9B,EACA,OAAO,KAAK,WACT,IAAI,CACH,KAAM,gBAAgBD,CAAK,eAAeD,CAAW,GACrD,MAAAG,EACA,MAAAJ,CACF,CAAC,EACA,KAAMK,GAAkCA,CAAQ,CACrD,CAEA,sBACEL,EACAM,EACAL,EACAG,EACuB,CACvB,YAAK,QAAQ,qBAAsB,CAAE,SAAAE,EAAU,YAAAL,CAAY,CAAC,EAErD,KAAK,WACT,IAAI,CACH,KAAM,qBAAqBK,CAAQ,IAAIL,CAAW,GAClD,MAAAD,EACA,MAAAI,CACF,CAAC,EACA,KAAMC,GAA2BA,CAAQ,CAC9C,CAEA,kBACEL,EACAM,EACAL,EACAM,EACAH,EAC8B,CAC9B,YAAK,QAAQ,iBAAkB,CAAE,SAAAE,EAAU,YAAAL,EAAa,QAAAM,CAAQ,CAAC,EAE1D,KAAK,WACT,IAAI,CACH,KAAM,YAAYD,CAAQ,eAAeL,CAAW,WAAWM,CAAO,UACtE,MAAAP,EACA,MAAAI,CACF,CAAC,EACA,KAAMC,GAAkCA,CAAQ,CACrD,CAEA,eACEL,EACAM,EACAL,EACAO,EACAD,EACAE,EACuB,CACvB,YAAK,QAAQ,cAAe,CAAE,SAAAH,EAAU,YAAAL,EAAa,YAAAO,EAAa,QAAAD,CAAQ,CAAC,EAEpE,KAAK,WACT,IAAI,CACH,KAAM,YAAYD,CAAQ,eAAeL,CAAW,eAAeO,CAAW,UAC9E,MAAAR,EACA,MAAO,CACL,2BAAAS,EACA,QAAAF,CACF,CACF,CAAC,EACA,KAAMF,GAA2BA,CAAQ,CAC9C,CAEA,mBACEL,EACAM,EACAL,EACAO,EACAC,EACuB,CACvB,YAAK,QAAQ,kBAAmB,CAAE,SAAAH,EAAU,YAAAL,EAAa,YAAAO,CAAY,CAAC,EAE/D,KAAK,WACT,OAAO,CACN,KAAM,YAAYF,CAAQ,eAAeL,CAAW,eAAeO,CAAW,GAC9E,MAAAR,EACA,MAAO,CACL,2BAAAS,CACF,CACF,CAAC,EACA,KAAMJ,GAA2BA,CAAQ,CAC9C,CAEA,QAAQK,EAAeC,EAAqB,CAC1C,EAAAC,QAAO,KAAK,qBAAqBF,CAAK,GAAG,EACrCC,GAAQ,OAAO,KAAKA,CAAI,EAAE,QAAQ,EAAAC,QAAO,KAAK,KAAK,UAAUD,EAAM,KAAM,CAAC,CAAC,CACjF,CACF,CAGA,IAAOjB,EAAQD",
|
|
6
6
|
"names": ["dashboardClient_exports", "__export", "DashboardClient", "dashboardClient_default", "__toCommonJS", "import_logger", "import_restClient", "config", "RestClient", "token", "dashboardId", "dpdId", "definitionsPath", "query", "response", "reportId", "tableId", "executionId", "dataProductDefinitionsPath", "title", "args", "logger"]
|
|
7
7
|
}
|
|
@@ -70,8 +70,8 @@ class DashboardClient {
|
|
|
70
70
|
reportId: string,
|
|
71
71
|
dashboardId: string,
|
|
72
72
|
executionId: string,
|
|
73
|
-
dataProductDefinitionsPath?: string,
|
|
74
73
|
tableId?: string,
|
|
74
|
+
dataProductDefinitionsPath?: string,
|
|
75
75
|
): Promise<Dict<string>> {
|
|
76
76
|
this.logInfo('Get status:', { reportId, dashboardId, executionId, tableId })
|
|
77
77
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var
|
|
1
|
+
var h=Object.create;var d=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var D=Object.getPrototypeOf,b=Object.prototype.hasOwnProperty;var E=(s,e)=>{for(var t in e)d(s,t,{get:e[t],enumerable:!0})},m=(s,e,t,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of R(e))!b.call(s,r)&&r!==t&&d(s,r,{get:()=>e[r],enumerable:!(a=v(e,r))||a.enumerable});return s};var c=(s,e,t)=>(t=s!=null?h(D(s)):{},m(e||!s||!s.__esModule?d(t,"default",{value:s,enumerable:!0}):t,s)),P=s=>m(d({},"__esModule",{value:!0}),s);var S={};E(S,{RequestReportController:()=>p,default:()=>F});module.exports=P(S);var u=c(require("./utils")),i=c(require("../../../../components/error-summary/utils")),n=c(require("../../../../utils/Personalisation/personalisationUtils")),y=require("../../../../components/_filters/filtersTypeEnum");class p{constructor(e,t){this.GET=async(e,t,a)=>{try{const r=await u.default.renderRequest({req:e,res:t,services:this.services,next:a});t.render("dpr/routes/journeys/request-report/filters/view",{layoutPath:this.layoutPath,...r})}catch(r){e.body.title="Request failed",e.body.errorDescription=`Your ${e.params.type} has failed to generate.`,e.body.error=i.default.handleError(r,e.params.type),a()}};this.POST=async(e,t,a)=>{try{const r=await u.default.request({req:e,res:t,services:this.services,next:a}),{executionId:o,dataProductDefinitionsPath:l}=r;if(o){const f=l?`${o}/status?dataProductDefinitionsPath=${l}`:`${o}/status`;t.redirect(f)}else t.end()}catch(r){const o=i.default.handleError(r,e.params.type),l=u.default.getFiltersFromReqBody(e);e.body={title:"Request Failed",errorDescription:`Your ${e.params.type} has failed to generate.`,error:o,retry:!0,filters:l,...e.body},a()}};this.saveDefaultFilterValues=async(e,t,a)=>{try{await n.default.saveDefaults(y.FiltersType.REQUEST,t,e,this.services),t.redirect(`${e.baseUrl}?defaultsSaved=true`)}catch(r){e.body={title:"Failed to save defaults",error:i.default.handleError(r,e.params.type),...e.body},a()}};this.removeDefaultFilterValues=async(e,t,a)=>{try{await n.default.removeDefaults(y.FiltersType.REQUEST,t,e,this.services),t.redirect(e.baseUrl)}catch(r){e.body={title:"Failed to remove defaults",error:i.default.handleError(r,e.params.type),...e.body},a()}};this.layoutPath=e,this.services=t}}var F=p;0&&(module.exports={RequestReportController});
|
|
2
2
|
//# sourceMappingURL=controller.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/dpr/routes/journeys/request-report/filters/controller.ts"],
|
|
4
|
-
"sourcesContent": ["import { RequestHandler } from 'express'\nimport { Services } from '../../../../types/Services'\nimport { RequestDataResult } from '../../../../types/AsyncReportUtils'\nimport AysncRequestUtils from './utils'\nimport ErrorSummaryUtils from '../../../../components/error-summary/utils'\nimport PersonalisationUtils from '../../../../utils/Personalisation/personalisationUtils'\nimport { FiltersType } from '../../../../components/_filters/filtersTypeEnum'\n\nclass RequestReportController {\n layoutPath: string\n\n services: Services\n\n constructor(layoutPath: string, services: Services) {\n this.layoutPath = layoutPath\n this.services = services\n }\n\n // Render request page\n GET: RequestHandler = async (req, res, next) => {\n try {\n const requestRenderData = <RequestDataResult>await AysncRequestUtils.renderRequest({\n req,\n res,\n services: this.services,\n next,\n })\n\n res.render(`dpr/routes/journeys/request-report/filters/view`, {\n layoutPath: this.layoutPath,\n ...requestRenderData,\n })\n } catch (error) {\n req.body.title = 'Request failed'\n req.body.errorDescription = `Your ${req.params.type} has failed to generate.`\n req.body.error = ErrorSummaryUtils.handleError(error, req.params.type)\n next()\n }\n }\n\n // Request report\n POST: RequestHandler = async (req, res, next) => {\n try {\n const
|
|
5
|
-
"mappings": "6iBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,6BAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAGA,IAAAK,EAA8B,sBAC9BA,EAA8B,yDAC9BC,EAAiC,qEACjCC,EAA4B,2DAE5B,MAAML,CAAwB,CAK5B,YAAYM,EAAoBC,EAAoB,CAMpD,SAAsB,MAAOC,EAAKC,EAAKC,IAAS,CAC9C,GAAI,CACF,MAAMC,EAAuC,MAAM,EAAAC,QAAkB,cAAc,CACjF,IAAAJ,EACA,IAAAC,EACA,SAAU,KAAK,SACf,KAAAC,CACF,CAAC,EAEDD,EAAI,OAAO,kDAAmD,CAC5D,WAAY,KAAK,WACjB,GAAGE,CACL,CAAC,CACH,OAASE,EAAO,CACdL,EAAI,KAAK,MAAQ,iBACjBA,EAAI,KAAK,iBAAmB,QAAQA,EAAI,OAAO,IAAI,2BACnDA,EAAI,KAAK,MAAQ,EAAAM,QAAkB,YAAYD,EAAOL,EAAI,OAAO,IAAI,EACrEE,EAAK,CACP,CACF,EAGA,UAAuB,MAAOF,EAAKC,EAAKC,IAAS,CAC/C,GAAI,CACF,MAAMK,
|
|
6
|
-
"names": ["controller_exports", "__export", "RequestReportController", "controller_default", "__toCommonJS", "import_utils", "import_personalisationUtils", "import_filtersTypeEnum", "layoutPath", "services", "req", "res", "next", "requestRenderData", "AysncRequestUtils", "error", "ErrorSummaryUtils", "executionId", "redirect", "dprError", "filters", "PersonalisationUtils"]
|
|
4
|
+
"sourcesContent": ["import { RequestHandler } from 'express'\nimport { Services } from '../../../../types/Services'\nimport { RequestDataResult } from '../../../../types/AsyncReportUtils'\nimport AysncRequestUtils from './utils'\nimport ErrorSummaryUtils from '../../../../components/error-summary/utils'\nimport PersonalisationUtils from '../../../../utils/Personalisation/personalisationUtils'\nimport { FiltersType } from '../../../../components/_filters/filtersTypeEnum'\n\nclass RequestReportController {\n layoutPath: string\n\n services: Services\n\n constructor(layoutPath: string, services: Services) {\n this.layoutPath = layoutPath\n this.services = services\n }\n\n // Render request page\n GET: RequestHandler = async (req, res, next) => {\n try {\n const requestRenderData = <RequestDataResult>await AysncRequestUtils.renderRequest({\n req,\n res,\n services: this.services,\n next,\n })\n\n res.render(`dpr/routes/journeys/request-report/filters/view`, {\n layoutPath: this.layoutPath,\n ...requestRenderData,\n })\n } catch (error) {\n req.body.title = 'Request failed'\n req.body.errorDescription = `Your ${req.params.type} has failed to generate.`\n req.body.error = ErrorSummaryUtils.handleError(error, req.params.type)\n next()\n }\n }\n\n // Request report\n POST: RequestHandler = async (req, res, next) => {\n try {\n const executionData = await AysncRequestUtils.request({\n req,\n res,\n services: this.services,\n next,\n })\n\n const { executionId, dataProductDefinitionsPath } = executionData\n\n if (executionId) {\n const redirect = dataProductDefinitionsPath\n ? `${executionId}/status?dataProductDefinitionsPath=${dataProductDefinitionsPath}`\n : `${executionId}/status`\n res.redirect(redirect)\n } else {\n res.end()\n }\n } catch (error) {\n const dprError = ErrorSummaryUtils.handleError(error, req.params.type)\n const filters = AysncRequestUtils.getFiltersFromReqBody(req)\n\n req.body = {\n title: 'Request Failed',\n errorDescription: `Your ${req.params.type} has failed to generate.`,\n error: dprError,\n retry: true,\n filters,\n ...req.body,\n }\n next()\n }\n }\n\n saveDefaultFilterValues: RequestHandler = async (req, res, next) => {\n try {\n await PersonalisationUtils.saveDefaults(FiltersType.REQUEST, res, req, this.services)\n res.redirect(`${req.baseUrl}?defaultsSaved=true`)\n } catch (error) {\n req.body = {\n title: 'Failed to save defaults',\n error: ErrorSummaryUtils.handleError(error, req.params.type),\n ...req.body,\n }\n next()\n }\n }\n\n removeDefaultFilterValues: RequestHandler = async (req, res, next) => {\n try {\n await PersonalisationUtils.removeDefaults(FiltersType.REQUEST, res, req, this.services)\n res.redirect(req.baseUrl)\n } catch (error) {\n req.body = {\n title: 'Failed to remove defaults',\n error: ErrorSummaryUtils.handleError(error, req.params.type),\n ...req.body,\n }\n next()\n }\n }\n}\n\nexport { RequestReportController }\nexport default RequestReportController\n"],
|
|
5
|
+
"mappings": "6iBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,6BAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAGA,IAAAK,EAA8B,sBAC9BA,EAA8B,yDAC9BC,EAAiC,qEACjCC,EAA4B,2DAE5B,MAAML,CAAwB,CAK5B,YAAYM,EAAoBC,EAAoB,CAMpD,SAAsB,MAAOC,EAAKC,EAAKC,IAAS,CAC9C,GAAI,CACF,MAAMC,EAAuC,MAAM,EAAAC,QAAkB,cAAc,CACjF,IAAAJ,EACA,IAAAC,EACA,SAAU,KAAK,SACf,KAAAC,CACF,CAAC,EAEDD,EAAI,OAAO,kDAAmD,CAC5D,WAAY,KAAK,WACjB,GAAGE,CACL,CAAC,CACH,OAASE,EAAO,CACdL,EAAI,KAAK,MAAQ,iBACjBA,EAAI,KAAK,iBAAmB,QAAQA,EAAI,OAAO,IAAI,2BACnDA,EAAI,KAAK,MAAQ,EAAAM,QAAkB,YAAYD,EAAOL,EAAI,OAAO,IAAI,EACrEE,EAAK,CACP,CACF,EAGA,UAAuB,MAAOF,EAAKC,EAAKC,IAAS,CAC/C,GAAI,CACF,MAAMK,EAAgB,MAAM,EAAAH,QAAkB,QAAQ,CACpD,IAAAJ,EACA,IAAAC,EACA,SAAU,KAAK,SACf,KAAAC,CACF,CAAC,EAEK,CAAE,YAAAM,EAAa,2BAAAC,CAA2B,EAAIF,EAEpD,GAAIC,EAAa,CACf,MAAME,EAAWD,EACb,GAAGD,CAAW,sCAAsCC,CAA0B,GAC9E,GAAGD,CAAW,UAClBP,EAAI,SAASS,CAAQ,CACvB,MACET,EAAI,IAAI,CAEZ,OAASI,EAAO,CACd,MAAMM,EAAW,EAAAL,QAAkB,YAAYD,EAAOL,EAAI,OAAO,IAAI,EAC/DY,EAAU,EAAAR,QAAkB,sBAAsBJ,CAAG,EAE3DA,EAAI,KAAO,CACT,MAAO,iBACP,iBAAkB,QAAQA,EAAI,OAAO,IAAI,2BACzC,MAAOW,EACP,MAAO,GACP,QAAAC,EACA,GAAGZ,EAAI,IACT,EACAE,EAAK,CACP,CACF,EAEA,6BAA0C,MAAOF,EAAKC,EAAKC,IAAS,CAClE,GAAI,CACF,MAAM,EAAAW,QAAqB,aAAa,cAAY,QAASZ,EAAKD,EAAK,KAAK,QAAQ,EACpFC,EAAI,SAAS,GAAGD,EAAI,OAAO,qBAAqB,CAClD,OAASK,EAAO,CACdL,EAAI,KAAO,CACT,MAAO,0BACP,MAAO,EAAAM,QAAkB,YAAYD,EAAOL,EAAI,OAAO,IAAI,EAC3D,GAAGA,EAAI,IACT,EACAE,EAAK,CACP,CACF,EAEA,+BAA4C,MAAOF,EAAKC,EAAKC,IAAS,CACpE,GAAI,CACF,MAAM,EAAAW,QAAqB,eAAe,cAAY,QAASZ,EAAKD,EAAK,KAAK,QAAQ,EACtFC,EAAI,SAASD,EAAI,OAAO,CAC1B,OAASK,EAAO,CACdL,EAAI,KAAO,CACT,MAAO,4BACP,MAAO,EAAAM,QAAkB,YAAYD,EAAOL,EAAI,OAAO,IAAI,EAC3D,GAAGA,EAAI,IACT,EACAE,EAAK,CACP,CACF,EAxFE,KAAK,WAAaJ,EAClB,KAAK,SAAWC,CAClB,CAuFF,CAGA,IAAON,EAAQD",
|
|
6
|
+
"names": ["controller_exports", "__export", "RequestReportController", "controller_default", "__toCommonJS", "import_utils", "import_personalisationUtils", "import_filtersTypeEnum", "layoutPath", "services", "req", "res", "next", "requestRenderData", "AysncRequestUtils", "error", "ErrorSummaryUtils", "executionData", "executionId", "dataProductDefinitionsPath", "redirect", "dprError", "filters", "PersonalisationUtils"]
|
|
7
7
|
}
|
|
@@ -41,15 +41,19 @@ class RequestReportController {
|
|
|
41
41
|
// Request report
|
|
42
42
|
POST: RequestHandler = async (req, res, next) => {
|
|
43
43
|
try {
|
|
44
|
-
const
|
|
44
|
+
const executionData = await AysncRequestUtils.request({
|
|
45
45
|
req,
|
|
46
46
|
res,
|
|
47
47
|
services: this.services,
|
|
48
48
|
next,
|
|
49
49
|
})
|
|
50
50
|
|
|
51
|
+
const { executionId, dataProductDefinitionsPath } = executionData
|
|
52
|
+
|
|
51
53
|
if (executionId) {
|
|
52
|
-
const redirect =
|
|
54
|
+
const redirect = dataProductDefinitionsPath
|
|
55
|
+
? `${executionId}/status?dataProductDefinitionsPath=${dataProductDefinitionsPath}`
|
|
56
|
+
: `${executionId}/status`
|
|
53
57
|
res.redirect(redirect)
|
|
54
58
|
} else {
|
|
55
59
|
res.end()
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var _=Object.create;var
|
|
1
|
+
var _=Object.create;var g=Object.defineProperty;var $=Object.getOwnPropertyDescriptor;var j=Object.getOwnPropertyNames;var J=Object.getPrototypeOf,L=Object.prototype.hasOwnProperty;var z=(e,t)=>{for(var r in t)g(e,r,{get:t[r],enumerable:!0})},T=(e,t,r,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of j(t))!L.call(e,i)&&i!==r&&g(e,i,{get:()=>t[i],enumerable:!(a=$(t,i))||a.enumerable});return e};var h=(e,t,r)=>(r=e!=null?_(J(e)):{},T(t||!e||!e.__esModule?g(r,"default",{value:e,enumerable:!0}):r,e)),G=e=>T(g({},"__esModule",{value:!0}),e);var te={};z(te,{cancelRequest:()=>C,default:()=>ee,getDefintionByType:()=>Q,getFiltersFromReqBody:()=>k,renderRequest:()=>N,request:()=>B,updateStore:()=>O});module.exports=G(te);var x=h(require("../../../../components/_async/async-filters-form/utils")),R=h(require("../../../../utils/localsHelper")),U=h(require("../../../../components/_filters/utils")),b=require("../../../../utils/reportStoreHelper"),q=h(require("../../../../utils/UserStoreItemBuilder")),m=require("../../../../types/UserReports"),P=h(require("../../../../utils/Personalisation/personalisationUtils")),V=require("../../../../components/_filters/filtersTypeEnum");const O=async({req:e,res:t,services:r,queryData:a,executionData:i,childExecutionData:o})=>{const{search:p,id:n,type:s}=e.body,{dprUser:d,definitionsPath:c,dpdPathFromQuery:l}=R.default.getValues(t);await(0,b.removeDuplicates)({storeService:r.requestedReportService,userId:d.id,id:n,search:p}),await(0,b.removeDuplicates)({storeService:r.recentlyViewedService,userId:d.id,id:n,search:p});const u=e.body,y={type:u.type,reportId:u.reportId,reportName:u.reportName,description:u.description,id:u.id,name:u.name};let f;switch(s){case m.ReportType.REPORT:f=new q.default(y,u).addExecutionData(i).addChildExecutionData(o).addFilters(a?.filterData).addSortData(a?.sortData).addDefinitionsPath(c,l).addRequestUrls(e).addQuery(a).addStatus(m.RequestStatus.SUBMITTED).addTimestamp().build();break;case m.ReportType.DASHBOARD:{f=new q.default(y,u).addExecutionData(i).addChildExecutionData(o).addFilters(a?.filterData).addDefinitionsPath(c,l).addRequestUrls(e).addQuery(a).addStatus(m.RequestStatus.SUBMITTED).addTimestamp().addMetrics(JSON.parse(e.body.sections)).build();break}default:break}await r.requestedReportService.addReport(d.id,f)};async function K(e,t,r,a,i,o){return Promise.all(e.map(p=>t.requestAsyncReport(r,a,p.id,{...i.query,dataProductDefinitionsPath:o}).then(n=>{const{executionId:s,tableId:d}=n;return{executionId:s,tableId:d,variantId:p.id}})))}const W=async({req:e,res:t,token:r,dashboardService:a,reportingService:i})=>{const{definitionsPath:o,dpdPathFromQuery:p}=R.default.getValues(t),{reportId:n,id:s,type:d}=e.body;let c,l,u,y,f,D=[];d===m.ReportType.REPORT&&(f=await i.getDefinition(r,n,s,o),c=f?f.variant.specification?.fields:[],l=x.default.setQueryFromFilters(e,c),{executionId:u,tableId:y}=await i.requestAsyncReport(r,n,s,{...l.query,dataProductDefinitionsPath:o}),D=f.variant.childVariants??[]),d===m.ReportType.DASHBOARD&&(f=await a.getDefinition(r,n,s,o),c=f?f.filterFields:[],l=x.default.setQueryFromFilters(e,c),{executionId:u,tableId:y}=await a.requestAsyncDashboard(r,n,s,{...l.query,dataProductDefinitionsPath:o}));const S=await K(D,i,r,n,l,o);return{executionData:{executionId:u,tableId:y,...p&&{dataProductDefinitionsPath:o}},childExecutionData:S,queryData:l}},X=async({token:e,reportId:t,definitionPath:r,services:a,definition:i})=>{const n=(await a.reportingService.getDefinitions(e,r)).find(u=>u.id===t).name,{name:s,description:d,sections:c,filterFields:l}=i;return{reportName:n,name:s,description:d,sections:c||[],fields:l}},Y=async e=>({definition:e,reportName:e.name,name:e.variant.name,description:e.variant.description||e.description,template:e.variant.specification,fields:e?.variant?.specification?.fields,interactive:e?.variant?.interactive}),Q=async(e,t,r,a)=>{const{token:i,definitionsPath:o}=R.default.getValues(t),{reportId:p,id:n,variantId:s,type:d}=e.params;return await(d===m.ReportType.REPORT?a.reportingService:a.dashboardService).getDefinition(i,p,s||n,o)},Z=async(e,t,r,a,i,o)=>{const{reportId:p,id:n}=e.params;let s=await x.default.renderFilters(r,a);s.filters=P.default.setUserContextDefaults(t,s.filters);const d=await i.defaultFilterValuesService.get(o,p,n,V.FiltersType.REQUEST);return d&&(s=P.default.setFilterValuesFromSavedDefaults(s.filters,s.sortBy,d)),s.filters=U.default.setFilterValuesFromRequest(s.filters,e),{filtersData:s,defaultFilterValues:d}},B=async({req:e,res:t,services:r})=>{const{token:a}=R.default.getValues(t),i={req:e,res:t,token:a},{executionData:o,queryData:p,childExecutionData:n}=await W({...i,dashboardService:r.dashboardService,reportingService:r.reportingService});return o&&await O({req:e,res:t,services:r,queryData:p,executionData:o,childExecutionData:n}),o},C=async({req:e,res:t,services:r})=>{const{token:a,dprUser:i,definitionsPath:o}=R.default.getValues(t),{reportId:p,id:n,executionId:s,type:d}=e.params;let c;d===m.ReportType.REPORT&&(c=r.reportingService),d===m.ReportType.DASHBOARD&&(c=r.dashboardService);const l=await c.cancelAsyncRequest(a,p,n,s,o);l&&l.cancellationSucceeded&&await r.requestedReportService.updateStatus(s,i.id,m.RequestStatus.ABORTED)},N=async({req:e,res:t,services:r,next:a})=>{try{const{token:i,csrfToken:o,definitionsPath:p,dpdPathFromQuery:n,dprUser:s}=R.default.getValues(t),{reportId:d,type:c,id:l}=e.params,{definition:u}=t.locals,y=e.query.defaultsSaved,f={token:i,reportId:d,definitionPath:p,services:r};let D,S,v,H,F,A,E,w,I;c===m.ReportType.REPORT&&({name:D,reportName:S,description:v,fields:F,interactive:E}=await Y(u)),c===m.ReportType.DASHBOARD&&({name:D,reportName:S,description:v,sections:A,fields:F}=await X({...f,definition:u})),F&&({filtersData:w,defaultFilterValues:I}=await Z(e,t,F,E,r,s.id));const M={reportName:S,name:D,description:v,reportId:d,id:l,...n&&{definitionPath:p},csrfToken:o,template:H,sections:A,hasDefaults:I?.length,defaultsSaved:y,type:c};return{title:`Request ${c}`,filtersDescription:`Customise your ${c} using the filters below and submit your request.`,filtersData:w,reportData:M}}catch(i){return a(i),!1}},k=e=>Object.keys(e.body).filter(t=>t.includes("filters.")).filter(t=>!!e.body[t]).map(t=>({name:t,value:e.body[t]}));var ee={request:B,cancelRequest:C,renderRequest:N,getFiltersFromReqBody:k,getDefintionByType:Q};0&&(module.exports={cancelRequest,getDefintionByType,getFiltersFromReqBody,renderRequest,request,updateStore});
|
|
2
2
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/dpr/routes/journeys/request-report/filters/utils.ts"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable no-param-reassign */\nimport { Request, Response, NextFunction } from 'express'\n\n// Utils\nimport FiltersFormUtils from '../../../../components/_async/async-filters-form/utils'\nimport LocalsHelper from '../../../../utils/localsHelper'\nimport FiltersUtils from '../../../../components/_filters/utils'\nimport { removeDuplicates } from '../../../../utils/reportStoreHelper'\nimport UserStoreItemBuilder from '../../../../utils/UserStoreItemBuilder'\n\n// Types\nimport type ReportingService from '../../../../services/reportingService'\nimport { ReportType, RequestFormData, RequestStatus } from '../../../../types/UserReports'\nimport type { ExecutionData, ChildReportExecutionData } from '../../../../types/ExecutionData'\nimport type { AsyncReportUtilsParams, RequestDataResult, RequestReportData } from '../../../../types/AsyncReportUtils'\nimport type {\n RenderFiltersReturnValue,\n SetQueryFromFiltersResult,\n} from '../../../../components/_async/async-filters-form/types'\nimport type { components } from '../../../../types/api'\nimport type { DashboardDefinition } from '../../../../components/_dashboards/dashboard/types'\nimport type { Services } from '../../../../types/Services'\nimport type DashboardService from '../../../../services/dashboardService'\nimport PersonalistionUtils from '../../../../utils/Personalisation/personalisationUtils'\nimport { FiltersType } from '../../../../components/_filters/filtersTypeEnum'\n\n/**\n * Updates the store with the request details\n *\n * @param {Request} req\n * @param {Response} res\n * @param {Services} services\n * @param {SetQueryFromFiltersResult} querySummaryData\n * @param {string} executionData\n * @return {*} {Promise<string>}\n */\nexport const updateStore = async ({\n req,\n res,\n services,\n queryData,\n executionData,\n childExecutionData,\n}: {\n req: Request\n res: Response\n services: Services\n queryData?: SetQueryFromFiltersResult\n executionData: ExecutionData\n childExecutionData: Array<ChildReportExecutionData>\n}): Promise<void> => {\n const { search, id, type } = req.body\n const { dprUser, definitionsPath, dpdPathFromQuery } = LocalsHelper.getValues(res)\n\n await removeDuplicates({ storeService: services.requestedReportService, userId: dprUser.id, id, search })\n await removeDuplicates({ storeService: services.recentlyViewedService, userId: dprUser.id, id, search })\n\n const requestFormData: RequestFormData = req.body\n const reportData = {\n type: requestFormData.type as ReportType,\n reportId: requestFormData.reportId,\n reportName: requestFormData.reportName,\n description: requestFormData.description,\n id: requestFormData.id,\n name: requestFormData.name,\n }\n\n let requestedReportData\n switch (type) {\n case ReportType.REPORT:\n requestedReportData = new UserStoreItemBuilder(reportData, requestFormData)\n .addExecutionData(executionData)\n .addChildExecutionData(childExecutionData)\n .addFilters(queryData?.filterData)\n .addSortData(queryData?.sortData)\n .addDefinitionsPath(definitionsPath, dpdPathFromQuery)\n .addRequestUrls(req)\n .addQuery(queryData)\n .addStatus(RequestStatus.SUBMITTED)\n .addTimestamp()\n .build()\n break\n case ReportType.DASHBOARD: {\n requestedReportData = new UserStoreItemBuilder(reportData, requestFormData)\n .addExecutionData(executionData)\n .addChildExecutionData(childExecutionData)\n .addFilters(queryData?.filterData)\n .addDefinitionsPath(definitionsPath, dpdPathFromQuery)\n .addRequestUrls(req)\n .addQuery(queryData)\n .addStatus(RequestStatus.SUBMITTED)\n .addTimestamp()\n .addMetrics(JSON.parse(req.body.sections))\n .build()\n break\n }\n default:\n break\n }\n\n await services.requestedReportService.addReport(dprUser.id, requestedReportData)\n}\n\nasync function requestChildReports(\n childVariants: Array<components['schemas']['ChildVariantDefinition']>,\n reportingService: ReportingService,\n token: string,\n reportId: string,\n queryData: SetQueryFromFiltersResult,\n dataProductDefinitionsPath: string,\n): Promise<Array<ChildReportExecutionData>> {\n return Promise.all(\n childVariants.map((childVariant) =>\n reportingService\n .requestAsyncReport(token, reportId, childVariant.id, {\n ...queryData.query,\n dataProductDefinitionsPath,\n })\n .then((response) => {\n const { executionId, tableId } = response\n return { executionId, tableId, variantId: childVariant.id }\n }),\n ),\n )\n}\n\nconst requestProduct = async ({\n req,\n res,\n token,\n dashboardService,\n reportingService,\n}: {\n req: Request\n res: Response\n token: string\n dashboardService: DashboardService\n reportingService: ReportingService\n}): Promise<{\n executionData: ExecutionData\n childExecutionData: Array<ChildReportExecutionData>\n queryData: SetQueryFromFiltersResult\n}> => {\n const { definitionsPath: dataProductDefinitionsPath } = LocalsHelper.getValues(res)\n const { reportId, id, type } = req.body\n\n let fields\n let queryData\n let executionId\n let tableId\n let definition\n let childVariants: components['schemas']['ChildVariantDefinition'][] = []\n\n if (type === ReportType.REPORT) {\n definition = await reportingService.getDefinition(token, reportId, id, dataProductDefinitionsPath)\n\n fields = definition ? definition.variant.specification?.fields : []\n queryData = FiltersFormUtils.setQueryFromFilters(req, fields)\n ;({ executionId, tableId } = await reportingService.requestAsyncReport(token, reportId, id, {\n ...queryData.query,\n dataProductDefinitionsPath,\n }))\n childVariants = definition.variant.childVariants ?? []\n }\n\n if (type === ReportType.DASHBOARD) {\n definition = await dashboardService.getDefinition(token, reportId, id, dataProductDefinitionsPath)\n\n fields = definition ? definition.filterFields : []\n queryData = FiltersFormUtils.setQueryFromFilters(req, fields)\n ;({ executionId, tableId } = await dashboardService.requestAsyncDashboard(token, reportId, id, {\n ...queryData.query,\n dataProductDefinitionsPath,\n }))\n }\n\n const childExecutionData = await requestChildReports(\n childVariants,\n reportingService,\n token,\n reportId,\n queryData,\n dataProductDefinitionsPath,\n )\n\n return {\n executionData: { executionId, tableId },\n childExecutionData,\n queryData,\n }\n}\n\nconst renderDashboardRequestData = async ({\n token,\n reportId,\n definitionPath,\n services,\n definition,\n}: {\n token: string\n reportId: string\n definitionPath: string\n services: Services\n definition: DashboardDefinition\n}) => {\n const productDefinitions = await services.reportingService.getDefinitions(token, definitionPath)\n const productDefinition = productDefinitions.find(\n (def: components['schemas']['ReportDefinitionSummary']) => def.id === reportId,\n )\n const reportName = productDefinition.name\n const { name, description, sections, filterFields: fields } = definition\n\n return {\n reportName,\n name,\n description,\n sections: sections || [],\n fields,\n }\n}\n\nconst renderReportRequestData = async (definition: components['schemas']['SingleVariantReportDefinition']) => {\n return {\n definition,\n reportName: definition.name,\n name: definition.variant.name,\n description: definition.variant.description || definition.description,\n template: definition.variant.specification,\n fields: definition?.variant?.specification?.fields,\n interactive: definition?.variant?.interactive,\n }\n}\n\nexport const getDefintionByType = async (req: Request, res: Response, next: NextFunction, services: Services) => {\n const { token, definitionsPath } = LocalsHelper.getValues(res)\n const { reportId, id, variantId, type } = req.params\n\n const service = type === ReportType.REPORT ? services.reportingService : services.dashboardService\n const definition = await service.getDefinition(token, reportId, variantId || id, definitionsPath)\n\n return definition\n}\n\nconst getFilterData = async (\n req: Request,\n res: Response,\n fields: components['schemas']['FieldDefinition'][],\n interactive: boolean,\n services: Services,\n userId: string,\n) => {\n const { reportId, id } = req.params\n\n let filtersData = <RenderFiltersReturnValue>await FiltersFormUtils.renderFilters(fields, interactive)\n filtersData.filters = PersonalistionUtils.setUserContextDefaults(res, filtersData.filters)\n\n const defaultFilterValues = await services.defaultFilterValuesService.get(userId, reportId, id, FiltersType.REQUEST)\n if (defaultFilterValues) {\n filtersData = PersonalistionUtils.setFilterValuesFromSavedDefaults(\n filtersData.filters,\n filtersData.sortBy,\n defaultFilterValues,\n )\n }\n\n filtersData.filters = FiltersUtils.setFilterValuesFromRequest(filtersData.filters, req)\n\n return { filtersData, defaultFilterValues }\n}\n\n/**\n * Sends the request for the async report\n *\n * @param {AsyncReportUtilsParams} { req, res, services }\n * @return {*}\n */\nexport const request = async ({ req, res, services }: AsyncReportUtilsParams) => {\n const { token } = LocalsHelper.getValues(res)\n const requestArgs = { req, res, token }\n\n const { executionData, queryData, childExecutionData } = await requestProduct({\n ...requestArgs,\n dashboardService: services.dashboardService,\n reportingService: services.reportingService,\n })\n\n if (executionData) {\n await updateStore({\n req,\n res,\n services,\n queryData,\n executionData,\n childExecutionData,\n })\n }\n\n return executionData.executionId\n}\n\nexport const cancelRequest = async ({ req, res, services }: AsyncReportUtilsParams) => {\n const { token, dprUser, definitionsPath } = LocalsHelper.getValues(res)\n const { reportId, id, executionId, type } = req.params\n\n let service\n if (type === ReportType.REPORT) service = services.reportingService\n if (type === ReportType.DASHBOARD) service = services.dashboardService\n\n const response = await service.cancelAsyncRequest(token, reportId, id, executionId, definitionsPath)\n\n if (response && response.cancellationSucceeded) {\n await services.requestedReportService.updateStatus(executionId, dprUser.id, RequestStatus.ABORTED)\n }\n}\n\n/**\n * Returns the data required for rendering the async filters component\n *\n * @param {AsyncReportUtilsParams} { req, res, dataSources }\n * @return {*}\n */\nexport const renderRequest = async ({\n req,\n res,\n services,\n next,\n}: AsyncReportUtilsParams): Promise<RequestDataResult | boolean> => {\n try {\n const { token, csrfToken, definitionsPath: definitionPath, dpdPathFromQuery, dprUser } = LocalsHelper.getValues(res)\n const { reportId, type, id } = req.params\n const { definition } = res.locals\n const defaultsSaved = <string>req.query.defaultsSaved\n\n const definitionApiArgs = { token, reportId, definitionPath, services }\n\n let name\n let reportName\n let description\n let template\n let fields: components['schemas']['FieldDefinition'][]\n let sections\n let interactive\n let filtersData\n let defaultFilterValues\n\n if (type === ReportType.REPORT) {\n ;({ name, reportName, description, fields, interactive } = await renderReportRequestData(definition))\n }\n\n if (type === ReportType.DASHBOARD) {\n ;({ name, reportName, description, sections, fields } = await renderDashboardRequestData({\n ...definitionApiArgs,\n definition,\n }))\n }\n\n if (fields) {\n ;({ filtersData, defaultFilterValues } = await getFilterData(req, res, fields, interactive, services, dprUser.id))\n }\n\n const reportData: RequestReportData = {\n reportName,\n name,\n description,\n reportId,\n id,\n ...(dpdPathFromQuery && { definitionPath }),\n csrfToken,\n template,\n sections,\n hasDefaults: defaultFilterValues?.length,\n defaultsSaved,\n type: type as ReportType,\n }\n\n return {\n title: `Request ${type}`,\n filtersDescription: `Customise your ${type} using the filters below and submit your request.`,\n filtersData,\n reportData,\n }\n } catch (error) {\n next(error)\n return false\n }\n}\n\nexport const getFiltersFromReqBody = (req: Request) => {\n return Object.keys(req.body)\n .filter((attr) => attr.includes('filters.'))\n .filter((attr) => !!req.body[attr])\n .map((attr) => {\n return { name: attr, value: req.body[attr] }\n })\n}\n\nexport default {\n request,\n cancelRequest,\n renderRequest,\n getFiltersFromReqBody,\n getDefintionByType,\n}\n"],
|
|
5
|
-
"mappings": "6iBAAA,IAAAA,GAAA,GAAAC,EAAAD,GAAA,mBAAAE,EAAA,YAAAC,GAAA,uBAAAC,EAAA,0BAAAC,EAAA,kBAAAC,EAAA,YAAAC,EAAA,gBAAAC,IAAA,eAAAC,EAAAT,IAIA,IAAAU,EAA6B,qEAC7BC,EAAyB,6CACzBD,EAAyB,oDACzBE,EAAiC,+CACjCC,EAAiC,qDAIjCC,EAA2D,yCAW3DC,EAAgC,qEAChCC,EAA4B,2DAYrB,MAAMR,EAAc,MAAO,CAChC,IAAAS,EACA,IAAAC,EACA,SAAAC,EACA,UAAAC,EACA,cAAAC,EACA,mBAAAC,CACF,IAOqB,CACnB,KAAM,CAAE,OAAAC,EAAQ,GAAAC,EAAI,KAAAC,CAAK,EAAIR,EAAI,KAC3B,CAAE,QAAAS,EAAS,gBAAAC,EAAiB,iBAAAC,CAAiB,EAAI,EAAAC,QAAa,UAAUX,CAAG,EAEjF,QAAM,oBAAiB,CAAE,aAAcC,EAAS,uBAAwB,OAAQO,EAAQ,GAAI,GAAAF,EAAI,OAAAD,CAAO,CAAC,EACxG,QAAM,oBAAiB,CAAE,aAAcJ,EAAS,sBAAuB,OAAQO,EAAQ,GAAI,GAAAF,EAAI,OAAAD,CAAO,CAAC,EAEvG,MAAMO,EAAmCb,EAAI,KACvCc,EAAa,CACjB,KAAMD,EAAgB,KACtB,SAAUA,EAAgB,SAC1B,WAAYA,EAAgB,WAC5B,YAAaA,EAAgB,YAC7B,GAAIA,EAAgB,GACpB,KAAMA,EAAgB,IACxB,EAEA,IAAIE,EACJ,OAAQP,EAAM,CACZ,KAAK,aAAW,OACdO,EAAsB,IAAI,EAAAC,QAAqBF,EAAYD,CAAe,EACvE,iBAAiBT,CAAa,EAC9B,sBAAsBC,CAAkB,EACxC,WAAWF,GAAW,UAAU,EAChC,YAAYA,GAAW,QAAQ,EAC/B,mBAAmBO,EAAiBC,CAAgB,EACpD,eAAeX,CAAG,EAClB,SAASG,CAAS,EAClB,UAAU,gBAAc,SAAS,EACjC,aAAa,EACb,MAAM,EACT,MACF,KAAK,aAAW,UAAW,CACzBY,EAAsB,IAAI,EAAAC,QAAqBF,EAAYD,CAAe,EACvE,iBAAiBT,CAAa,EAC9B,sBAAsBC,CAAkB,EACxC,WAAWF,GAAW,UAAU,EAChC,mBAAmBO,EAAiBC,CAAgB,EACpD,eAAeX,CAAG,EAClB,SAASG,CAAS,EAClB,UAAU,gBAAc,SAAS,EACjC,aAAa,EACb,WAAW,KAAK,MAAMH,EAAI,KAAK,QAAQ,CAAC,EACxC,MAAM,EACT,KACF,CACA,QACE,KACJ,CAEA,MAAME,EAAS,uBAAuB,UAAUO,EAAQ,GAAIM,CAAmB,CACjF,EAEA,eAAeE,EACbC,EACAC,EACAC,EACAC,EACAlB,EACAmB,EAC0C,CAC1C,OAAO,QAAQ,IACbJ,EAAc,IAAKK,GACjBJ,EACG,mBAAmBC,EAAOC,EAAUE,EAAa,GAAI,CACpD,GAAGpB,EAAU,MACb,2BAAAmB,CACF,CAAC,EACA,KAAME,GAAa,CAClB,KAAM,CAAE,YAAAC,EAAa,QAAAC,CAAQ,EAAIF,EACjC,MAAO,CAAE,YAAAC,EAAa,QAAAC,EAAS,UAAWH,EAAa,EAAG,CAC5D,CAAC,CACL,CACF,CACF,CAEA,MAAMI,EAAiB,MAAO,CAC5B,IAAA3B,EACA,IAAAC,EACA,MAAAmB,EACA,iBAAAQ,EACA,iBAAAT,CACF,IAUM,CACJ,KAAM,CAAE,gBAAiBG,
|
|
4
|
+
"sourcesContent": ["/* eslint-disable no-param-reassign */\nimport { Request, Response, NextFunction } from 'express'\n\n// Utils\nimport FiltersFormUtils from '../../../../components/_async/async-filters-form/utils'\nimport LocalsHelper from '../../../../utils/localsHelper'\nimport FiltersUtils from '../../../../components/_filters/utils'\nimport { removeDuplicates } from '../../../../utils/reportStoreHelper'\nimport UserStoreItemBuilder from '../../../../utils/UserStoreItemBuilder'\n\n// Types\nimport type ReportingService from '../../../../services/reportingService'\nimport { ReportType, RequestFormData, RequestStatus } from '../../../../types/UserReports'\nimport type { ExecutionData, ChildReportExecutionData } from '../../../../types/ExecutionData'\nimport type { AsyncReportUtilsParams, RequestDataResult, RequestReportData } from '../../../../types/AsyncReportUtils'\nimport type {\n RenderFiltersReturnValue,\n SetQueryFromFiltersResult,\n} from '../../../../components/_async/async-filters-form/types'\nimport type { components } from '../../../../types/api'\nimport type { DashboardDefinition } from '../../../../components/_dashboards/dashboard/types'\nimport type { Services } from '../../../../types/Services'\nimport type DashboardService from '../../../../services/dashboardService'\nimport PersonalistionUtils from '../../../../utils/Personalisation/personalisationUtils'\nimport { FiltersType } from '../../../../components/_filters/filtersTypeEnum'\n\n/**\n * Updates the store with the request details\n *\n * @param {Request} req\n * @param {Response} res\n * @param {Services} services\n * @param {SetQueryFromFiltersResult} querySummaryData\n * @param {string} executionData\n * @return {*} {Promise<string>}\n */\nexport const updateStore = async ({\n req,\n res,\n services,\n queryData,\n executionData,\n childExecutionData,\n}: {\n req: Request\n res: Response\n services: Services\n queryData?: SetQueryFromFiltersResult\n executionData: ExecutionData\n childExecutionData: Array<ChildReportExecutionData>\n}): Promise<void> => {\n const { search, id, type } = req.body\n const { dprUser, definitionsPath, dpdPathFromQuery } = LocalsHelper.getValues(res)\n\n await removeDuplicates({ storeService: services.requestedReportService, userId: dprUser.id, id, search })\n await removeDuplicates({ storeService: services.recentlyViewedService, userId: dprUser.id, id, search })\n\n const requestFormData: RequestFormData = req.body\n const reportData = {\n type: requestFormData.type as ReportType,\n reportId: requestFormData.reportId,\n reportName: requestFormData.reportName,\n description: requestFormData.description,\n id: requestFormData.id,\n name: requestFormData.name,\n }\n\n let requestedReportData\n switch (type) {\n case ReportType.REPORT:\n requestedReportData = new UserStoreItemBuilder(reportData, requestFormData)\n .addExecutionData(executionData)\n .addChildExecutionData(childExecutionData)\n .addFilters(queryData?.filterData)\n .addSortData(queryData?.sortData)\n .addDefinitionsPath(definitionsPath, dpdPathFromQuery)\n .addRequestUrls(req)\n .addQuery(queryData)\n .addStatus(RequestStatus.SUBMITTED)\n .addTimestamp()\n .build()\n break\n case ReportType.DASHBOARD: {\n requestedReportData = new UserStoreItemBuilder(reportData, requestFormData)\n .addExecutionData(executionData)\n .addChildExecutionData(childExecutionData)\n .addFilters(queryData?.filterData)\n .addDefinitionsPath(definitionsPath, dpdPathFromQuery)\n .addRequestUrls(req)\n .addQuery(queryData)\n .addStatus(RequestStatus.SUBMITTED)\n .addTimestamp()\n .addMetrics(JSON.parse(req.body.sections))\n .build()\n break\n }\n default:\n break\n }\n\n await services.requestedReportService.addReport(dprUser.id, requestedReportData)\n}\n\nasync function requestChildReports(\n childVariants: Array<components['schemas']['ChildVariantDefinition']>,\n reportingService: ReportingService,\n token: string,\n reportId: string,\n queryData: SetQueryFromFiltersResult,\n dataProductDefinitionsPath: string,\n): Promise<Array<ChildReportExecutionData>> {\n return Promise.all(\n childVariants.map((childVariant) =>\n reportingService\n .requestAsyncReport(token, reportId, childVariant.id, {\n ...queryData.query,\n dataProductDefinitionsPath,\n })\n .then((response) => {\n const { executionId, tableId } = response\n return { executionId, tableId, variantId: childVariant.id }\n }),\n ),\n )\n}\n\nconst requestProduct = async ({\n req,\n res,\n token,\n dashboardService,\n reportingService,\n}: {\n req: Request\n res: Response\n token: string\n dashboardService: DashboardService\n reportingService: ReportingService\n}): Promise<{\n executionData: ExecutionData\n childExecutionData: Array<ChildReportExecutionData>\n queryData: SetQueryFromFiltersResult\n}> => {\n const { definitionsPath: dataProductDefinitionsPath, dpdPathFromQuery } = LocalsHelper.getValues(res)\n const { reportId, id, type } = req.body\n\n let fields\n let queryData\n let executionId\n let tableId\n let definition\n let childVariants: components['schemas']['ChildVariantDefinition'][] = []\n\n if (type === ReportType.REPORT) {\n definition = await reportingService.getDefinition(token, reportId, id, dataProductDefinitionsPath)\n\n fields = definition ? definition.variant.specification?.fields : []\n queryData = FiltersFormUtils.setQueryFromFilters(req, fields)\n ;({ executionId, tableId } = await reportingService.requestAsyncReport(token, reportId, id, {\n ...queryData.query,\n dataProductDefinitionsPath,\n }))\n childVariants = definition.variant.childVariants ?? []\n }\n\n if (type === ReportType.DASHBOARD) {\n definition = await dashboardService.getDefinition(token, reportId, id, dataProductDefinitionsPath)\n\n fields = definition ? definition.filterFields : []\n queryData = FiltersFormUtils.setQueryFromFilters(req, fields)\n ;({ executionId, tableId } = await dashboardService.requestAsyncDashboard(token, reportId, id, {\n ...queryData.query,\n dataProductDefinitionsPath,\n }))\n }\n\n const childExecutionData = await requestChildReports(\n childVariants,\n reportingService,\n token,\n reportId,\n queryData,\n dataProductDefinitionsPath,\n )\n\n const executionData = {\n executionId,\n tableId,\n ...(dpdPathFromQuery && { dataProductDefinitionsPath }),\n }\n\n return {\n executionData,\n childExecutionData,\n queryData,\n }\n}\n\nconst renderDashboardRequestData = async ({\n token,\n reportId,\n definitionPath,\n services,\n definition,\n}: {\n token: string\n reportId: string\n definitionPath: string\n services: Services\n definition: DashboardDefinition\n}) => {\n const productDefinitions = await services.reportingService.getDefinitions(token, definitionPath)\n const productDefinition = productDefinitions.find(\n (def: components['schemas']['ReportDefinitionSummary']) => def.id === reportId,\n )\n const reportName = productDefinition.name\n const { name, description, sections, filterFields: fields } = definition\n\n return {\n reportName,\n name,\n description,\n sections: sections || [],\n fields,\n }\n}\n\nconst renderReportRequestData = async (definition: components['schemas']['SingleVariantReportDefinition']) => {\n return {\n definition,\n reportName: definition.name,\n name: definition.variant.name,\n description: definition.variant.description || definition.description,\n template: definition.variant.specification,\n fields: definition?.variant?.specification?.fields,\n interactive: definition?.variant?.interactive,\n }\n}\n\nexport const getDefintionByType = async (req: Request, res: Response, next: NextFunction, services: Services) => {\n const { token, definitionsPath } = LocalsHelper.getValues(res)\n const { reportId, id, variantId, type } = req.params\n\n const service = type === ReportType.REPORT ? services.reportingService : services.dashboardService\n const definition = await service.getDefinition(token, reportId, variantId || id, definitionsPath)\n\n return definition\n}\n\nconst getFilterData = async (\n req: Request,\n res: Response,\n fields: components['schemas']['FieldDefinition'][],\n interactive: boolean,\n services: Services,\n userId: string,\n) => {\n const { reportId, id } = req.params\n\n let filtersData = <RenderFiltersReturnValue>await FiltersFormUtils.renderFilters(fields, interactive)\n filtersData.filters = PersonalistionUtils.setUserContextDefaults(res, filtersData.filters)\n\n const defaultFilterValues = await services.defaultFilterValuesService.get(userId, reportId, id, FiltersType.REQUEST)\n if (defaultFilterValues) {\n filtersData = PersonalistionUtils.setFilterValuesFromSavedDefaults(\n filtersData.filters,\n filtersData.sortBy,\n defaultFilterValues,\n )\n }\n\n filtersData.filters = FiltersUtils.setFilterValuesFromRequest(filtersData.filters, req)\n\n return { filtersData, defaultFilterValues }\n}\n\n/**\n * Sends the request for the async report\n *\n * @param {AsyncReportUtilsParams} { req, res, services }\n * @return {*}\n */\nexport const request = async ({ req, res, services }: AsyncReportUtilsParams) => {\n const { token } = LocalsHelper.getValues(res)\n const requestArgs = { req, res, token }\n\n const { executionData, queryData, childExecutionData } = await requestProduct({\n ...requestArgs,\n dashboardService: services.dashboardService,\n reportingService: services.reportingService,\n })\n\n if (executionData) {\n await updateStore({\n req,\n res,\n services,\n queryData,\n executionData,\n childExecutionData,\n })\n }\n\n return executionData\n}\n\nexport const cancelRequest = async ({ req, res, services }: AsyncReportUtilsParams) => {\n const { token, dprUser, definitionsPath } = LocalsHelper.getValues(res)\n const { reportId, id, executionId, type } = req.params\n\n let service\n if (type === ReportType.REPORT) service = services.reportingService\n if (type === ReportType.DASHBOARD) service = services.dashboardService\n\n const response = await service.cancelAsyncRequest(token, reportId, id, executionId, definitionsPath)\n\n if (response && response.cancellationSucceeded) {\n await services.requestedReportService.updateStatus(executionId, dprUser.id, RequestStatus.ABORTED)\n }\n}\n\n/**\n * Returns the data required for rendering the async filters component\n *\n * @param {AsyncReportUtilsParams} { req, res, dataSources }\n * @return {*}\n */\nexport const renderRequest = async ({\n req,\n res,\n services,\n next,\n}: AsyncReportUtilsParams): Promise<RequestDataResult | boolean> => {\n try {\n const { token, csrfToken, definitionsPath: definitionPath, dpdPathFromQuery, dprUser } = LocalsHelper.getValues(res)\n const { reportId, type, id } = req.params\n const { definition } = res.locals\n const defaultsSaved = <string>req.query.defaultsSaved\n\n const definitionApiArgs = { token, reportId, definitionPath, services }\n\n let name\n let reportName\n let description\n let template\n let fields: components['schemas']['FieldDefinition'][]\n let sections\n let interactive\n let filtersData\n let defaultFilterValues\n\n if (type === ReportType.REPORT) {\n ;({ name, reportName, description, fields, interactive } = await renderReportRequestData(definition))\n }\n\n if (type === ReportType.DASHBOARD) {\n ;({ name, reportName, description, sections, fields } = await renderDashboardRequestData({\n ...definitionApiArgs,\n definition,\n }))\n }\n\n if (fields) {\n ;({ filtersData, defaultFilterValues } = await getFilterData(req, res, fields, interactive, services, dprUser.id))\n }\n\n const reportData: RequestReportData = {\n reportName,\n name,\n description,\n reportId,\n id,\n ...(dpdPathFromQuery && { definitionPath }),\n csrfToken,\n template,\n sections,\n hasDefaults: defaultFilterValues?.length,\n defaultsSaved,\n type: type as ReportType,\n }\n\n return {\n title: `Request ${type}`,\n filtersDescription: `Customise your ${type} using the filters below and submit your request.`,\n filtersData,\n reportData,\n }\n } catch (error) {\n next(error)\n return false\n }\n}\n\nexport const getFiltersFromReqBody = (req: Request) => {\n return Object.keys(req.body)\n .filter((attr) => attr.includes('filters.'))\n .filter((attr) => !!req.body[attr])\n .map((attr) => {\n return { name: attr, value: req.body[attr] }\n })\n}\n\nexport default {\n request,\n cancelRequest,\n renderRequest,\n getFiltersFromReqBody,\n getDefintionByType,\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["utils_exports", "__export", "cancelRequest", "utils_default", "getDefintionByType", "getFiltersFromReqBody", "renderRequest", "request", "updateStore", "__toCommonJS", "import_utils", "import_localsHelper", "import_reportStoreHelper", "import_UserStoreItemBuilder", "import_UserReports", "import_personalisationUtils", "import_filtersTypeEnum", "req", "res", "services", "queryData", "executionData", "childExecutionData", "search", "id", "type", "dprUser", "definitionsPath", "dpdPathFromQuery", "LocalsHelper", "requestFormData", "reportData", "requestedReportData", "UserStoreItemBuilder", "requestChildReports", "childVariants", "reportingService", "token", "reportId", "dataProductDefinitionsPath", "childVariant", "response", "executionId", "tableId", "requestProduct", "dashboardService", "fields", "definition", "FiltersFormUtils", "renderDashboardRequestData", "definitionPath", "reportName", "def", "name", "description", "sections", "renderReportRequestData", "next", "variantId", "getFilterData", "interactive", "userId", "filtersData", "PersonalistionUtils", "defaultFilterValues", "FiltersUtils", "requestArgs", "service", "csrfToken", "defaultsSaved", "definitionApiArgs", "template", "error", "attr"]
|
|
7
7
|
}
|
|
@@ -141,7 +141,7 @@ const requestProduct = async ({
|
|
|
141
141
|
childExecutionData: Array<ChildReportExecutionData>
|
|
142
142
|
queryData: SetQueryFromFiltersResult
|
|
143
143
|
}> => {
|
|
144
|
-
const { definitionsPath: dataProductDefinitionsPath } = LocalsHelper.getValues(res)
|
|
144
|
+
const { definitionsPath: dataProductDefinitionsPath, dpdPathFromQuery } = LocalsHelper.getValues(res)
|
|
145
145
|
const { reportId, id, type } = req.body
|
|
146
146
|
|
|
147
147
|
let fields
|
|
@@ -183,8 +183,14 @@ const requestProduct = async ({
|
|
|
183
183
|
dataProductDefinitionsPath,
|
|
184
184
|
)
|
|
185
185
|
|
|
186
|
+
const executionData = {
|
|
187
|
+
executionId,
|
|
188
|
+
tableId,
|
|
189
|
+
...(dpdPathFromQuery && { dataProductDefinitionsPath }),
|
|
190
|
+
}
|
|
191
|
+
|
|
186
192
|
return {
|
|
187
|
-
executionData
|
|
193
|
+
executionData,
|
|
188
194
|
childExecutionData,
|
|
189
195
|
queryData,
|
|
190
196
|
}
|
|
@@ -295,7 +301,7 @@ export const request = async ({ req, res, services }: AsyncReportUtilsParams) =>
|
|
|
295
301
|
})
|
|
296
302
|
}
|
|
297
303
|
|
|
298
|
-
return executionData
|
|
304
|
+
return executionData
|
|
299
305
|
}
|
|
300
306
|
|
|
301
307
|
export const cancelRequest = async ({ req, res, services }: AsyncReportUtilsParams) => {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var
|
|
1
|
+
var B=Object.create;var h=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var O=Object.getPrototypeOf,_=Object.prototype.hasOwnProperty;var H=(t,e)=>{for(var r in e)h(t,r,{get:e[r],enumerable:!0})},T=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of N(e))!_.call(t,a)&&a!==r&&h(t,a,{get:()=>e[a],enumerable:!(o=M(e,a))||o.enumerable});return t};var m=(t,e,r)=>(r=t!=null?B(O(t)):{},T(e||!t||!t.__esModule?h(r,"default",{value:t,enumerable:!0}):r,t)),Q=t=>T(h({},"__esModule",{value:!0}),t);var z={};H(z,{default:()=>v,renderAsyncDashboard:()=>L});module.exports=Q(z);var k=m(require("parseurl")),c=require("../../../../../components/_dashboards/dashboard/types"),U=require("../../../../../types/UserReports"),b=m(require("../../../../../components/_charts/utils")),E=m(require("../../../../../utils/definitionUtils")),V=m(require("../../../../../components/user-reports/utils")),w=m(require("../../../../../components/_dashboards/dashboard-list/utils")),I=m(require("../../../../../components/_filters/utils")),S=m(require("../../../../../components/_dashboards/scorecard/utils")),F=m(require("../../../../../components/_reports/report-actions/utils")),q=m(require("../../../../../types/ReportQuery")),g=m(require("../../../../../utils/localsHelper")),C=require("../../../../../components/_filters/filtersTypeEnum");const G=(t,e,r)=>{const o=e.name,{name:a}=t,i=r.url.request.fullUrl,{executionId:p}=r;return F.default.getActions({share:{reportName:o,name:a,url:i},refresh:{url:i,executionId:p},copy:{url:i}})},X=async({req:t,res:e,services:r,next:o})=>{const{token:a}=g.default.getValues(e),{reportId:i,id:p}=t.params,{dataProductDefinitionsPath:n}=t.query,d=await r.dashboardService.getDefinition(a,i,p,n),s=await E.default.getReportSummary(i,r.reportingService,a,n),u=await I.default.getFilters({fields:d.filterFields||[],req:t,filtersType:C.FiltersType.INTERACTIVE}),f=I.default.setRequestQueryFromFilterValues(u.filters);return{query:new q.default({fields:d.filterFields||[],queryParams:f,definitionsPath:n,reportType:U.ReportType.DASHBOARD}).toRecordWithFilterPrefix(!0),filters:u,dashboardDefinition:d,reportDefinition:s}},W=(t,e,r)=>t.sections.map(o=>{const{id:a,display:i,description:p}=o;let n=!1;const d=o.visualisations.map(s=>{const{type:u,display:f,description:D,id:R}=s;let l;switch(u){case c.DashboardVisualisationType.LIST:l=w.default.createList(s,e);break;case c.DashboardVisualisationType.SCORECARD:n=!0,l=S.default.createScorecard(s,e);break;case c.DashboardVisualisationType.SCORECARD_GROUP:l=S.default.createScorecards(s,e);break;case c.DashboardVisualisationType.BAR:case c.DashboardVisualisationType.LINE:case c.DashboardVisualisationType.DONUT:{l=b.default.createChart(s,e);break}case c.DashboardVisualisationType.MATRIX:case c.DashboardVisualisationType.MATRIX_TIMESERIES:{l=b.default.createMatrixChart(s,e,r);break}case c.DashboardVisualisationType.BAR_TIMESERIES:case c.DashboardVisualisationType.LINE_TIMESERIES:{l=b.default.createTimeseriesCharts(s,e);break}default:break}return{id:R,title:f,description:D,type:u,data:l}});return n&&S.default.mergeScorecardsIntoGroup(d),{id:a,title:i,description:p,visualisations:d}}),j=async(t,e,r,o,a,i,p)=>{const n=await t.requestedReportService.getReportByTableId(e,r);return o&&o.length&&n&&V.default.updateLastViewed({services:t,reportStateData:n,userId:r,req:i,filters:p}),n},L=async({req:t,res:e,services:r,next:o})=>{const{token:a,csrfToken:i,dprUser:p,nestedBaseUrl:n}=g.default.getValues(e),{reportId:d,id:s,tableId:u}=t.params,f=(0,k.default)(t),{query:D,filters:R,reportDefinition:l,dashboardDefinition:y}=await X({req:t,res:e,services:r}),P=(await r.dashboardService.getAsyncDashboard(a,s,d,u,D)).flat(),A=W(y,P,D),x=await j(r,u,p.id,A,f,t,R.filters);return{dashboardData:{token:a,id:s,reportId:d,name:y.name,description:y.description,reportName:l.name,bookmarked:await r.bookmarkService.isBookmarked(s,d,p.id),nestedBaseUrl:n,csrfToken:i,sections:A,filters:R,type:U.ReportType.DASHBOARD,actions:G(y,l,x)}}};var v={renderAsyncDashboard:L};0&&(module.exports={renderAsyncDashboard});
|
|
2
2
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../src/dpr/routes/journeys/view-report/async/dashboard/utils.ts"],
|
|
4
|
-
"sourcesContent": ["import parseUrl from 'parseurl'\nimport { Url } from 'url'\nimport { Request } from 'express'\nimport type { AsyncReportUtilsParams } from '../../../../../types/AsyncReportUtils'\n\nimport {\n DashboardUIVisualisation,\n DashboardVisualisationType,\n ListVisualisation,\n type DashboardDefinition,\n type DashboardSection,\n type DashboardUISection,\n type DashboardVisualisation,\n} from '../../../../../components/_dashboards/dashboard/types'\nimport type { DashboardDataResponse } from '../../../../../types/Metrics'\nimport type { RequestedReport } from '../../../../../types/UserReports'\nimport { ReportType } from '../../../../../types/UserReports'\nimport type { components } from '../../../../../types/api'\n\nimport ChartUtils from '../../../../../components/_charts/utils'\nimport DefinitionUtils from '../../../../../utils/definitionUtils'\nimport UserReportsUtils from '../../../../../components/user-reports/utils'\nimport DashboardListUtils from '../../../../../components/_dashboards/dashboard-list/utils'\nimport FilterUtils from '../../../../../components/_filters/utils'\nimport ScorecardsUtils from '../../../../../components/_dashboards/scorecard/utils'\nimport ReportActionsUtils from '../../../../../components/_reports/report-actions/utils'\nimport ReportQuery from '../../../../../types/ReportQuery'\nimport LocalsHelper from '../../../../../utils/localsHelper'\nimport { Services } from '../../../../../types/Services'\nimport { FilterValue } from '../../../../../components/_filters/types'\nimport { FiltersType } from '../../../../../components/_filters/filtersTypeEnum'\n\nconst setDashboardActions = (\n dashboardDefinition: DashboardDefinition,\n reportDefinition: components['schemas']['ReportDefinitionSummary'],\n requestData: RequestedReport,\n) => {\n const reportName = reportDefinition.name\n const { name } = dashboardDefinition\n const actionsUrl = requestData.url.request.fullUrl\n const { executionId } = requestData\n\n return ReportActionsUtils.getActions({\n share: {\n reportName,\n name,\n url: actionsUrl,\n },\n refresh: {\n url: actionsUrl,\n executionId,\n },\n copy: {\n url: actionsUrl,\n },\n })\n}\n\nconst getDefinitionData = async ({ req, res, services, next }: AsyncReportUtilsParams) => {\n const { token } = LocalsHelper.getValues(res)\n const { reportId, id } = req.params\n const { dataProductDefinitionsPath } = req.query\n\n // Dashboard Definition,\n const dashboardDefinition: DashboardDefinition = await services.dashboardService.getDefinition(\n token,\n reportId,\n id,\n dataProductDefinitionsPath,\n )\n\n // Report summary data\n const reportDefinition = await DefinitionUtils.getReportSummary(\n reportId,\n services.reportingService,\n token,\n <string>dataProductDefinitionsPath,\n )\n\n // Get the filters\n const filtersData = await FilterUtils.getFilters({\n fields: dashboardDefinition.filterFields || [],\n req,\n filtersType: FiltersType.INTERACTIVE,\n })\n\n const filtersQuery = FilterUtils.setRequestQueryFromFilterValues(filtersData.filters)\n\n // Create the query\n const query = new ReportQuery({\n fields: dashboardDefinition.filterFields || [],\n queryParams: filtersQuery,\n definitionsPath: <string>dataProductDefinitionsPath,\n reportType: ReportType.DASHBOARD,\n }).toRecordWithFilterPrefix(true)\n\n return {\n query,\n filters: filtersData,\n dashboardDefinition,\n reportDefinition,\n }\n}\n\nconst getSections = (\n dashboardDefinition: DashboardDefinition,\n dashboardData: DashboardDataResponse[],\n): DashboardUISection[] => {\n return dashboardDefinition.sections.map((section: DashboardSection) => {\n const { id, display: title, description } = section\n\n let hasScorecard = false\n const visualisations = section.visualisations.map((visDefinition: DashboardVisualisation) => {\n const { type, display, description: visDescription, id: visId } = visDefinition\n\n let data: DashboardUIVisualisation['data']\n\n switch (type) {\n case DashboardVisualisationType.LIST:\n data = DashboardListUtils.createList(visDefinition as ListVisualisation, dashboardData)\n break\n\n case DashboardVisualisationType.SCORECARD:\n hasScorecard = true\n data = ScorecardsUtils.createScorecard(visDefinition, dashboardData)\n break\n\n case DashboardVisualisationType.SCORECARD_GROUP:\n data = ScorecardsUtils.createScorecards(visDefinition, dashboardData)\n break\n\n case DashboardVisualisationType.BAR:\n case DashboardVisualisationType.LINE:\n case DashboardVisualisationType.
|
|
5
|
-
"mappings": "6iBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,yBAAAC,IAAA,eAAAC,EAAAJ,GAAA,IAAAK,EAAqB,uBAKrBC,EAQO,iEAGPC,EAA2B,4CAG3BC,EAAuB,sDACvBC,EAA4B,mDAC5BD,EAA6B,2DAC7BA,EAA+B,yEAC/BA,EAAwB,uDACxBA,EAA4B,oEAC5BA,EAA+B,sEAC/BE,EAAwB,+CACxBC,EAAyB,gDAGzBC,EAA4B,8DAE5B,MAAMC,EAAsB,CAC1BC,EACAC,EACAC,IACG,CACH,MAAMC,EAAaF,EAAiB,KAC9B,CAAE,KAAAG,CAAK,EAAIJ,EACXK,EAAaH,EAAY,IAAI,QAAQ,QACrC,CAAE,YAAAI,CAAY,EAAIJ,EAExB,OAAO,EAAAK,QAAmB,WAAW,CACnC,MAAO,CACL,WAAAJ,EACA,KAAAC,EACA,IAAKC,CACP,EACA,QAAS,CACP,IAAKA,EACL,YAAAC,CACF,EACA,KAAM,CACJ,IAAKD,CACP,CACF,CAAC,CACH,EAEMG,EAAoB,MAAO,CAAE,IAAAC,EAAK,IAAAC,EAAK,SAAAC,EAAU,KAAAC,CAAK,IAA8B,CACxF,KAAM,CAAE,MAAAC,CAAM,EAAI,EAAAC,QAAa,UAAUJ,CAAG,EACtC,CAAE,SAAAK,EAAU,GAAAC,CAAG,EAAIP,EAAI,OACvB,CAAE,2BAAAQ,CAA2B,EAAIR,EAAI,MAGrCT,EAA2C,MAAMW,EAAS,iBAAiB,cAC/EE,EACAE,EACAC,EACAC,CACF,EAGMhB,EAAmB,MAAM,EAAAiB,QAAgB,iBAC7CH,EACAJ,EAAS,iBACTE,EACQI,CACV,EAGME,EAAc,MAAM,EAAAC,QAAY,WAAW,CAC/C,OAAQpB,EAAoB,cAAgB,CAAC,EAC7C,IAAAS,EACA,YAAa,cAAY,WAC3B,CAAC,EAEKY,EAAe,EAAAD,QAAY,gCAAgCD,EAAY,OAAO,EAUpF,MAAO,CACL,MARY,IAAI,EAAAG,QAAY,CAC5B,OAAQtB,EAAoB,cAAgB,CAAC,EAC7C,YAAaqB,EACb,gBAAyBJ,EACzB,WAAY,aAAW,SACzB,CAAC,EAAE,yBAAyB,EAAI,EAI9B,QAASE,EACT,oBAAAnB,EACA,iBAAAC,CACF,CACF,EAEMsB,EAAc,CAClBvB,EACAwB,
|
|
6
|
-
"names": ["utils_exports", "__export", "utils_default", "renderAsyncDashboard", "__toCommonJS", "import_parseurl", "import_types", "import_UserReports", "import_utils", "import_definitionUtils", "import_ReportQuery", "import_localsHelper", "import_filtersTypeEnum", "setDashboardActions", "dashboardDefinition", "reportDefinition", "requestData", "reportName", "name", "actionsUrl", "executionId", "ReportActionsUtils", "getDefinitionData", "req", "res", "services", "next", "token", "LocalsHelper", "reportId", "id", "dataProductDefinitionsPath", "DefinitionUtils", "filtersData", "FilterUtils", "filtersQuery", "ReportQuery", "getSections", "dashboardData", "section", "title", "description", "hasScorecard", "visualisations", "visDefinition", "type", "display", "visDescription", "visId", "data", "DashboardListUtils", "ScorecardsUtils", "ChartUtils", "updateStore", "tableId", "userId", "sections", "url", "filters", "dashboardRequestData", "UserReportsUtils", "csrfToken", "dprUser", "nestedBaseUrl", "parseUrl", "
|
|
4
|
+
"sourcesContent": ["import parseUrl from 'parseurl'\nimport { Url } from 'url'\nimport { Request } from 'express'\nimport type { AsyncReportUtilsParams } from '../../../../../types/AsyncReportUtils'\n\nimport {\n DashboardUIVisualisation,\n DashboardVisualisationType,\n ListVisualisation,\n type DashboardDefinition,\n type DashboardSection,\n type DashboardUISection,\n type DashboardVisualisation,\n} from '../../../../../components/_dashboards/dashboard/types'\nimport type { DashboardDataResponse } from '../../../../../types/Metrics'\nimport type { RequestedReport } from '../../../../../types/UserReports'\nimport { ReportType } from '../../../../../types/UserReports'\nimport type { components } from '../../../../../types/api'\n\nimport ChartUtils from '../../../../../components/_charts/utils'\nimport DefinitionUtils from '../../../../../utils/definitionUtils'\nimport UserReportsUtils from '../../../../../components/user-reports/utils'\nimport DashboardListUtils from '../../../../../components/_dashboards/dashboard-list/utils'\nimport FilterUtils from '../../../../../components/_filters/utils'\nimport ScorecardsUtils from '../../../../../components/_dashboards/scorecard/utils'\nimport ReportActionsUtils from '../../../../../components/_reports/report-actions/utils'\nimport ReportQuery from '../../../../../types/ReportQuery'\nimport LocalsHelper from '../../../../../utils/localsHelper'\nimport { Services } from '../../../../../types/Services'\nimport { FilterValue } from '../../../../../components/_filters/types'\nimport { FiltersType } from '../../../../../components/_filters/filtersTypeEnum'\n\nconst setDashboardActions = (\n dashboardDefinition: DashboardDefinition,\n reportDefinition: components['schemas']['ReportDefinitionSummary'],\n requestData: RequestedReport,\n) => {\n const reportName = reportDefinition.name\n const { name } = dashboardDefinition\n const actionsUrl = requestData.url.request.fullUrl\n const { executionId } = requestData\n\n return ReportActionsUtils.getActions({\n share: {\n reportName,\n name,\n url: actionsUrl,\n },\n refresh: {\n url: actionsUrl,\n executionId,\n },\n copy: {\n url: actionsUrl,\n },\n })\n}\n\nconst getDefinitionData = async ({ req, res, services, next }: AsyncReportUtilsParams) => {\n const { token } = LocalsHelper.getValues(res)\n const { reportId, id } = req.params\n const { dataProductDefinitionsPath } = req.query\n\n // Dashboard Definition,\n const dashboardDefinition: DashboardDefinition = await services.dashboardService.getDefinition(\n token,\n reportId,\n id,\n dataProductDefinitionsPath,\n )\n\n // Report summary data\n const reportDefinition = await DefinitionUtils.getReportSummary(\n reportId,\n services.reportingService,\n token,\n <string>dataProductDefinitionsPath,\n )\n\n // Get the filters\n const filtersData = await FilterUtils.getFilters({\n fields: dashboardDefinition.filterFields || [],\n req,\n filtersType: FiltersType.INTERACTIVE,\n })\n\n const filtersQuery = FilterUtils.setRequestQueryFromFilterValues(filtersData.filters)\n\n // Create the query\n const query = new ReportQuery({\n fields: dashboardDefinition.filterFields || [],\n queryParams: filtersQuery,\n definitionsPath: <string>dataProductDefinitionsPath,\n reportType: ReportType.DASHBOARD,\n }).toRecordWithFilterPrefix(true)\n\n return {\n query,\n filters: filtersData,\n dashboardDefinition,\n reportDefinition,\n }\n}\n\nconst getSections = (\n dashboardDefinition: DashboardDefinition,\n dashboardData: DashboardDataResponse[],\n query: Record<string, string | string[]>,\n): DashboardUISection[] => {\n return dashboardDefinition.sections.map((section: DashboardSection) => {\n const { id, display: title, description } = section\n\n let hasScorecard = false\n const visualisations = section.visualisations.map((visDefinition: DashboardVisualisation) => {\n const { type, display, description: visDescription, id: visId } = visDefinition\n\n let data: DashboardUIVisualisation['data']\n\n switch (type) {\n case DashboardVisualisationType.LIST:\n data = DashboardListUtils.createList(visDefinition as ListVisualisation, dashboardData)\n break\n\n case DashboardVisualisationType.SCORECARD:\n hasScorecard = true\n data = ScorecardsUtils.createScorecard(visDefinition, dashboardData)\n break\n\n case DashboardVisualisationType.SCORECARD_GROUP:\n data = ScorecardsUtils.createScorecards(visDefinition, dashboardData)\n break\n\n case DashboardVisualisationType.BAR:\n case DashboardVisualisationType.LINE:\n case DashboardVisualisationType.DONUT: {\n data = ChartUtils.createChart(visDefinition, dashboardData)\n break\n }\n case DashboardVisualisationType.MATRIX:\n case DashboardVisualisationType.MATRIX_TIMESERIES: {\n data = ChartUtils.createMatrixChart(visDefinition, dashboardData, query)\n break\n }\n case DashboardVisualisationType.BAR_TIMESERIES:\n case DashboardVisualisationType.LINE_TIMESERIES: {\n data = ChartUtils.createTimeseriesCharts(visDefinition, dashboardData)\n break\n }\n default:\n break\n }\n\n return {\n id: visId,\n title: display,\n description: visDescription,\n type,\n data,\n }\n })\n\n if (hasScorecard) ScorecardsUtils.mergeScorecardsIntoGroup(visualisations)\n\n return { id, title, description, visualisations }\n })\n}\n\nconst updateStore = async (\n services: Services,\n tableId: string,\n userId: string,\n sections: DashboardUISection[],\n url: Url,\n req: Request,\n filters: FilterValue[],\n) => {\n const dashboardRequestData: RequestedReport = await services.requestedReportService.getReportByTableId(\n tableId,\n userId,\n )\n\n // Add to recently viewed\n if (sections && sections.length && dashboardRequestData) {\n UserReportsUtils.updateLastViewed({\n services,\n reportStateData: dashboardRequestData,\n userId,\n req,\n filters,\n })\n }\n\n return dashboardRequestData\n}\n\nexport const renderAsyncDashboard = async ({ req, res, services, next }: AsyncReportUtilsParams) => {\n const { token, csrfToken, dprUser, nestedBaseUrl } = LocalsHelper.getValues(res)\n const { reportId, id, tableId } = req.params\n const url = parseUrl(req)\n\n // Get the definition Data\n const { query, filters, reportDefinition, dashboardDefinition } = await getDefinitionData({\n req,\n res,\n services,\n })\n\n // Get the results data\n const dashboardData: DashboardDataResponse[][] = await services.dashboardService.getAsyncDashboard(\n token,\n id,\n reportId,\n tableId,\n query,\n )\n\n const flattenedData: DashboardDataResponse[] = dashboardData.flat()\n\n // Get the dashboard parts\n const sections: DashboardUISection[] = getSections(dashboardDefinition, flattenedData, query)\n\n // Update the store\n const dashboardRequestData = await updateStore(services, tableId, dprUser.id, sections, url, req, filters.filters)\n\n return {\n dashboardData: {\n token,\n id,\n reportId,\n name: dashboardDefinition.name,\n description: dashboardDefinition.description,\n reportName: reportDefinition.name,\n bookmarked: await services.bookmarkService.isBookmarked(id, reportId, dprUser.id),\n nestedBaseUrl,\n csrfToken,\n sections,\n filters,\n type: ReportType.DASHBOARD,\n actions: setDashboardActions(dashboardDefinition, reportDefinition, dashboardRequestData),\n },\n }\n}\n\nexport default {\n renderAsyncDashboard,\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["utils_exports", "__export", "utils_default", "renderAsyncDashboard", "__toCommonJS", "import_parseurl", "import_types", "import_UserReports", "import_utils", "import_definitionUtils", "import_ReportQuery", "import_localsHelper", "import_filtersTypeEnum", "setDashboardActions", "dashboardDefinition", "reportDefinition", "requestData", "reportName", "name", "actionsUrl", "executionId", "ReportActionsUtils", "getDefinitionData", "req", "res", "services", "next", "token", "LocalsHelper", "reportId", "id", "dataProductDefinitionsPath", "DefinitionUtils", "filtersData", "FilterUtils", "filtersQuery", "ReportQuery", "getSections", "dashboardData", "query", "section", "title", "description", "hasScorecard", "visualisations", "visDefinition", "type", "display", "visDescription", "visId", "data", "DashboardListUtils", "ScorecardsUtils", "ChartUtils", "updateStore", "tableId", "userId", "sections", "url", "filters", "dashboardRequestData", "UserReportsUtils", "csrfToken", "dprUser", "nestedBaseUrl", "parseUrl", "flattenedData"]
|
|
7
7
|
}
|
|
@@ -105,6 +105,7 @@ const getDefinitionData = async ({ req, res, services, next }: AsyncReportUtilsP
|
|
|
105
105
|
const getSections = (
|
|
106
106
|
dashboardDefinition: DashboardDefinition,
|
|
107
107
|
dashboardData: DashboardDataResponse[],
|
|
108
|
+
query: Record<string, string | string[]>,
|
|
108
109
|
): DashboardUISection[] => {
|
|
109
110
|
return dashboardDefinition.sections.map((section: DashboardSection) => {
|
|
110
111
|
const { id, display: title, description } = section
|
|
@@ -131,12 +132,20 @@ const getSections = (
|
|
|
131
132
|
|
|
132
133
|
case DashboardVisualisationType.BAR:
|
|
133
134
|
case DashboardVisualisationType.LINE:
|
|
134
|
-
case DashboardVisualisationType.BAR_TIMESERIES:
|
|
135
|
-
case DashboardVisualisationType.LINE_TIMESERIES:
|
|
136
135
|
case DashboardVisualisationType.DONUT: {
|
|
137
136
|
data = ChartUtils.createChart(visDefinition, dashboardData)
|
|
138
137
|
break
|
|
139
138
|
}
|
|
139
|
+
case DashboardVisualisationType.MATRIX:
|
|
140
|
+
case DashboardVisualisationType.MATRIX_TIMESERIES: {
|
|
141
|
+
data = ChartUtils.createMatrixChart(visDefinition, dashboardData, query)
|
|
142
|
+
break
|
|
143
|
+
}
|
|
144
|
+
case DashboardVisualisationType.BAR_TIMESERIES:
|
|
145
|
+
case DashboardVisualisationType.LINE_TIMESERIES: {
|
|
146
|
+
data = ChartUtils.createTimeseriesCharts(visDefinition, dashboardData)
|
|
147
|
+
break
|
|
148
|
+
}
|
|
140
149
|
default:
|
|
141
150
|
break
|
|
142
151
|
}
|
|
@@ -208,7 +217,7 @@ export const renderAsyncDashboard = async ({ req, res, services, next }: AsyncRe
|
|
|
208
217
|
const flattenedData: DashboardDataResponse[] = dashboardData.flat()
|
|
209
218
|
|
|
210
219
|
// Get the dashboard parts
|
|
211
|
-
const sections: DashboardUISection[] = getSections(dashboardDefinition, flattenedData)
|
|
220
|
+
const sections: DashboardUISection[] = getSections(dashboardDefinition, flattenedData, query)
|
|
212
221
|
|
|
213
222
|
// Update the store
|
|
214
223
|
const dashboardRequestData = await updateStore(services, tableId, dprUser.id, sections, url, req, filters.filters)
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var h=Object.create;var a=Object.defineProperty;var D=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty;var l=(s,r)=>{for(var t in r)a(s,t,{get:r[t],enumerable:!0})},g=(s,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of b(r))!u.call(s,i)&&i!==t&&a(s,i,{get:()=>r[i],enumerable:!(n=D(r,i))||n.enumerable});return s};var m=(s,r,t)=>(t=s!=null?h(y(s)):{},g(r||!s||!s.__esModule?a(t,"default",{value:s,enumerable:!0}):t,s)),A=s=>g(a({},"__esModule",{value:!0}),s);var p={};l(p,{DashboardService:()=>o,default:()=>f});module.exports=A(p);var c=m(require("../utils/logger"));class o{constructor(r){this.dashboardClient=r;this.dashboardClient=r,c.default.info("Service created: DashboardService")}async getDefinition(r,t,n,i){return this.dashboardClient.getDefinition(r,n,t,i)}async requestAsyncDashboard(r,t,n,i){return this.dashboardClient.requestAsyncDashboard(r,t,n,i)}async cancelAsyncRequest(r,t,n,i,e){return this.dashboardClient.cancelAsyncRequest(r,t,n,i,e)}async getAsyncStatus(r,t,n,i,e,d){return this.dashboardClient.getAsyncStatus(r,t,n,i,d
|
|
1
|
+
var h=Object.create;var a=Object.defineProperty;var D=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty;var l=(s,r)=>{for(var t in r)a(s,t,{get:r[t],enumerable:!0})},g=(s,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of b(r))!u.call(s,i)&&i!==t&&a(s,i,{get:()=>r[i],enumerable:!(n=D(r,i))||n.enumerable});return s};var m=(s,r,t)=>(t=s!=null?h(y(s)):{},g(r||!s||!s.__esModule?a(t,"default",{value:s,enumerable:!0}):t,s)),A=s=>g(a({},"__esModule",{value:!0}),s);var p={};l(p,{DashboardService:()=>o,default:()=>f});module.exports=A(p);var c=m(require("../utils/logger"));class o{constructor(r){this.dashboardClient=r;this.dashboardClient=r,c.default.info("Service created: DashboardService")}async getDefinition(r,t,n,i){return this.dashboardClient.getDefinition(r,n,t,i)}async requestAsyncDashboard(r,t,n,i){return this.dashboardClient.requestAsyncDashboard(r,t,n,i)}async cancelAsyncRequest(r,t,n,i,e){return this.dashboardClient.cancelAsyncRequest(r,t,n,i,e)}async getAsyncStatus(r,t,n,i,e,d){return this.dashboardClient.getAsyncStatus(r,t,n,i,e,d)}async getAsyncDashboard(r,t,n,i,e){return this.dashboardClient.getAsyncDashboard(r,n,t,i,e)}}var f=o;0&&(module.exports={DashboardService});
|
|
2
2
|
//# sourceMappingURL=dashboardService.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/dpr/services/dashboardService.ts"],
|
|
4
|
-
"sourcesContent": ["import { DashboardDefinition } from '../components/_dashboards/dashboard/types'\nimport Dict = NodeJS.Dict\nimport logger from '../utils/logger'\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nclass DashboardService {\n constructor(private readonly dashboardClient: any) {\n this.dashboardClient = dashboardClient\n logger.info('Service created: DashboardService')\n }\n\n async getDefinition(\n token: string,\n dpdId: string,\n id: string,\n dataProductDefinitionsPath?: string,\n ): Promise<DashboardDefinition> {\n return this.dashboardClient.getDefinition(token, id, dpdId, dataProductDefinitionsPath)\n }\n\n async requestAsyncDashboard(\n token: string,\n reportId: string,\n dashboardId: string,\n query: Record<string, string | boolean | number>,\n ): Promise<Dict<string>> {\n return this.dashboardClient.requestAsyncDashboard(token, reportId, dashboardId, query)\n }\n\n async cancelAsyncRequest(\n token: string,\n reportId: string,\n dashboardId: string,\n executionId: string,\n dataProductDefinitionsPath?: string,\n ): Promise<Dict<string>> {\n return this.dashboardClient.cancelAsyncRequest(\n token,\n reportId,\n dashboardId,\n executionId,\n dataProductDefinitionsPath,\n )\n }\n\n async getAsyncStatus(\n token: string,\n reportId: string,\n dashboardId: string,\n executionId: string,\n
|
|
5
|
-
"mappings": "6iBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAEA,IAAAK,EAAmB,8BAGnB,MAAMH,CAAiB,CACrB,YAA6BI,EAAsB,CAAtB,qBAAAA,EAC3B,KAAK,gBAAkBA,EACvB,EAAAC,QAAO,KAAK,mCAAmC,CACjD,CAEA,MAAM,cACJC,EACAC,EACAC,EACAC,EAC8B,CAC9B,OAAO,KAAK,gBAAgB,cAAcH,EAAOE,EAAID,EAAOE,CAA0B,CACxF,CAEA,MAAM,sBACJH,EACAI,EACAC,EACAC,EACuB,CACvB,OAAO,KAAK,gBAAgB,sBAAsBN,EAAOI,EAAUC,EAAaC,CAAK,CACvF,CAEA,MAAM,mBACJN,EACAI,EACAC,EACAE,EACAJ,EACuB,CACvB,OAAO,KAAK,gBAAgB,mBAC1BH,EACAI,EACAC,EACAE,EACAJ,CACF,CACF,CAEA,MAAM,eACJH,EACAI,EACAC,EACAE,
|
|
4
|
+
"sourcesContent": ["import { DashboardDefinition } from '../components/_dashboards/dashboard/types'\nimport Dict = NodeJS.Dict\nimport logger from '../utils/logger'\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nclass DashboardService {\n constructor(private readonly dashboardClient: any) {\n this.dashboardClient = dashboardClient\n logger.info('Service created: DashboardService')\n }\n\n async getDefinition(\n token: string,\n dpdId: string,\n id: string,\n dataProductDefinitionsPath?: string,\n ): Promise<DashboardDefinition> {\n return this.dashboardClient.getDefinition(token, id, dpdId, dataProductDefinitionsPath)\n }\n\n async requestAsyncDashboard(\n token: string,\n reportId: string,\n dashboardId: string,\n query: Record<string, string | boolean | number>,\n ): Promise<Dict<string>> {\n return this.dashboardClient.requestAsyncDashboard(token, reportId, dashboardId, query)\n }\n\n async cancelAsyncRequest(\n token: string,\n reportId: string,\n dashboardId: string,\n executionId: string,\n dataProductDefinitionsPath?: string,\n ): Promise<Dict<string>> {\n return this.dashboardClient.cancelAsyncRequest(\n token,\n reportId,\n dashboardId,\n executionId,\n dataProductDefinitionsPath,\n )\n }\n\n async getAsyncStatus(\n token: string,\n reportId: string,\n dashboardId: string,\n executionId: string,\n tableId?: string,\n dataProductDefinitionsPath?: string,\n ): Promise<Dict<string>> {\n return this.dashboardClient.getAsyncStatus(\n token,\n reportId,\n dashboardId,\n executionId,\n tableId,\n dataProductDefinitionsPath,\n )\n }\n\n async getAsyncDashboard(\n token: string,\n dashboardId: string,\n reportId: string,\n tableId: string,\n query: Dict<string | number>,\n ): Promise<Array<Dict<string>>> {\n return this.dashboardClient.getAsyncDashboard(token, reportId, dashboardId, tableId, query)\n }\n}\n\nexport { DashboardService }\nexport default DashboardService\n"],
|
|
5
|
+
"mappings": "6iBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAEA,IAAAK,EAAmB,8BAGnB,MAAMH,CAAiB,CACrB,YAA6BI,EAAsB,CAAtB,qBAAAA,EAC3B,KAAK,gBAAkBA,EACvB,EAAAC,QAAO,KAAK,mCAAmC,CACjD,CAEA,MAAM,cACJC,EACAC,EACAC,EACAC,EAC8B,CAC9B,OAAO,KAAK,gBAAgB,cAAcH,EAAOE,EAAID,EAAOE,CAA0B,CACxF,CAEA,MAAM,sBACJH,EACAI,EACAC,EACAC,EACuB,CACvB,OAAO,KAAK,gBAAgB,sBAAsBN,EAAOI,EAAUC,EAAaC,CAAK,CACvF,CAEA,MAAM,mBACJN,EACAI,EACAC,EACAE,EACAJ,EACuB,CACvB,OAAO,KAAK,gBAAgB,mBAC1BH,EACAI,EACAC,EACAE,EACAJ,CACF,CACF,CAEA,MAAM,eACJH,EACAI,EACAC,EACAE,EACAC,EACAL,EACuB,CACvB,OAAO,KAAK,gBAAgB,eAC1BH,EACAI,EACAC,EACAE,EACAC,EACAL,CACF,CACF,CAEA,MAAM,kBACJH,EACAK,EACAD,EACAI,EACAF,EAC8B,CAC9B,OAAO,KAAK,gBAAgB,kBAAkBN,EAAOI,EAAUC,EAAaG,EAASF,CAAK,CAC5F,CACF,CAGA,IAAOX,EAAQD",
|
|
6
6
|
"names": ["dashboardService_exports", "__export", "DashboardService", "dashboardService_default", "__toCommonJS", "import_logger", "dashboardClient", "logger", "token", "dpdId", "id", "dataProductDefinitionsPath", "reportId", "dashboardId", "query", "executionId", "tableId"]
|
|
7
7
|
}
|
|
@@ -48,8 +48,8 @@ class DashboardService {
|
|
|
48
48
|
reportId: string,
|
|
49
49
|
dashboardId: string,
|
|
50
50
|
executionId: string,
|
|
51
|
-
dataProductDefinitionsPath?: string,
|
|
52
51
|
tableId?: string,
|
|
52
|
+
dataProductDefinitionsPath?: string,
|
|
53
53
|
): Promise<Dict<string>> {
|
|
54
54
|
return this.dashboardClient.getAsyncStatus(
|
|
55
55
|
token,
|
package/dpr/types/Charts.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var n=Object.defineProperty;var
|
|
1
|
+
var n=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var C=(e,t)=>{for(var r in t)n(e,r,{get:t[r],enumerable:!0})},p=(e,t,r,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of u(t))!h.call(e,a)&&a!==r&&n(e,a,{get:()=>t[a],enumerable:!(i=l(t,a))||i.enumerable});return e};var x=e=>p(n({},"__esModule",{value:!0}),e);var b={};C(b,{ChartType:()=>o,UnitType:()=>s});module.exports=x(b);var s=(r=>(r.NUMBER="number",r.PERCENTAGE="percentage",r))(s||{}),o=(a=>(a.DONUT="doughnut",a.BAR="bar",a.BAR_TIMESERIES="bar-timeseries",a.LINE="line",a))(o||{});0&&(module.exports={ChartType,UnitType});
|
|
2
2
|
//# sourceMappingURL=Charts.js.map
|
package/dpr/types/Charts.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/dpr/types/Charts.ts"],
|
|
4
|
-
"sourcesContent": ["export interface ChartData {\n type: ChartType\n unit?: UnitType\n data: ChartDataValues\n timeseries?: boolean\n}\n\nexport interface ChartDetails {\n meta?: ChartMetaData[]\n headlines?: ChartMetaData[]\n}\n\nexport interface ChartMetaData {\n label: string\n value: string | number\n legend?: string\n}\n\nexport enum UnitType {\n NUMBER = 'number',\n PERCENTAGE = 'percentage',\n}\n\nexport enum ChartType {\n DONUT = 'doughnut',\n BAR = 'bar',\n BAR_TIMESERIES = 'bar-timeseries',\n LINE = 'line',\n}\n\nexport interface ChartCardData {\n chart: ChartData\n table?: MoJTable\n details?: ChartDetails\n}\n\nexport interface ChartDataValues {\n labels
|
|
4
|
+
"sourcesContent": ["export interface ChartData {\n type: ChartType\n unit?: UnitType\n data: ChartDataValues\n timeseries?: boolean\n}\n\nexport interface ChartDetails {\n meta?: ChartMetaData[]\n headlines?: ChartMetaData[]\n}\n\nexport interface ChartMetaData {\n label: string\n value: string | number\n legend?: string\n}\n\nexport enum UnitType {\n NUMBER = 'number',\n PERCENTAGE = 'percentage',\n}\n\nexport enum ChartType {\n DONUT = 'doughnut',\n BAR = 'bar',\n BAR_TIMESERIES = 'bar-timeseries',\n LINE = 'line',\n}\n\nexport interface ChartCardData {\n chart: ChartData\n table?: MoJTable\n details?: ChartDetails\n}\n\nexport interface ChartDataValues {\n labels?: string[]\n datasets: ChartDataset[]\n axis?: 'x' | 'y'\n}\n\nexport interface ChartDataset {\n label: string\n data: number[] | MatrixChartData[]\n total?: number\n}\n\nexport interface MatrixChartData {\n x: number | string\n y: number | string\n r?: number\n v?: number\n}\n\nexport interface MoJTable {\n head: MoJTableHead[]\n rows: MoJTableRow[][]\n}\n\nexport interface MoJTableRow {\n text?: string\n html?: string\n}\n\nexport interface MoJTableHead {\n text?: string\n html?: string\n}\n\nexport interface ChartCardValue {\n value: string | number\n name: string\n display: string\n unit?: UnitType\n chart?: ChartType[]\n}\n\nexport interface ChartValue {\n group?: ChartGroup\n data: ChartCardValue[]\n}\n\nexport interface ChartGroup {\n name: string\n value: string\n}\n\nexport interface ChartsData {\n type: ChartType\n datasets: { data: ChartCardValue[]; group: ChartGroup }[]\n}\n"],
|
|
5
5
|
"mappings": "4ZAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,eAAAE,EAAA,aAAAC,IAAA,eAAAC,EAAAJ,GAkBO,IAAKG,OACVA,EAAA,OAAS,SACTA,EAAA,WAAa,aAFHA,OAAA,IAKAD,OACVA,EAAA,MAAQ,WACRA,EAAA,IAAM,MACNA,EAAA,eAAiB,iBACjBA,EAAA,KAAO,OAJGA,OAAA",
|
|
6
6
|
"names": ["Charts_exports", "__export", "ChartType", "UnitType", "__toCommonJS"]
|
|
7
7
|
}
|
package/dpr/types/Charts.ts
CHANGED
|
@@ -35,15 +35,22 @@ export interface ChartCardData {
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
export interface ChartDataValues {
|
|
38
|
-
labels
|
|
38
|
+
labels?: string[]
|
|
39
39
|
datasets: ChartDataset[]
|
|
40
40
|
axis?: 'x' | 'y'
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
export interface ChartDataset {
|
|
44
44
|
label: string
|
|
45
|
-
data: number[]
|
|
46
|
-
total
|
|
45
|
+
data: number[] | MatrixChartData[]
|
|
46
|
+
total?: number
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export interface MatrixChartData {
|
|
50
|
+
x: number | string
|
|
51
|
+
y: number | string
|
|
52
|
+
r?: number
|
|
53
|
+
v?: number
|
|
47
54
|
}
|
|
48
55
|
|
|
49
56
|
export interface MoJTable {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var n=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var
|
|
1
|
+
var n=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var x=(e,t,r,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of c(t))!d.call(e,i)&&i!==r&&n(e,i,{get:()=>t[i],enumerable:!(a=o(t,i))||a.enumerable});return e};var s=e=>x(n({},"__esModule",{value:!0}),e);var u={};module.exports=s(u);
|
|
2
2
|
//# sourceMappingURL=ExecutionData.d.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/dpr/types/ExecutionData.d.ts"],
|
|
4
|
-
"sourcesContent": ["export interface ExecutionData {\n executionId: string\n tableId: string\n}\n\nexport interface ChildReportExecutionData extends ExecutionData {\n variantId: string\n}\n"],
|
|
4
|
+
"sourcesContent": ["export interface ExecutionData {\n executionId: string\n tableId: string\n dataProductDefinitionsPath?: string\n}\n\nexport interface ChildReportExecutionData extends ExecutionData {\n variantId: string\n}\n"],
|
|
5
5
|
"mappings": "kWAAA,IAAAA,EAAA,kBAAAC,EAAAD",
|
|
6
6
|
"names": ["ExecutionData_d_exports", "__toCommonJS"]
|
|
7
7
|
}
|