@ministryofjustice/hmpps-digital-prison-reporting-frontend 4.17.0 → 4.17.1
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/components/_catalogue/catalogue-list/utils.js +1 -1
- package/dpr/components/_catalogue/catalogue-list/utils.js.map +3 -3
- package/dpr/components/_catalogue/catalogue-list/utils.ts +4 -5
- package/dpr/components/_charts/chart/Buckets.js +1 -1
- package/dpr/components/_charts/chart/Buckets.js.map +3 -3
- package/dpr/components/_charts/chart/Buckets.ts +44 -36
- package/dpr/components/_charts/chart/heatmap/HeatmapChart.js +1 -1
- package/dpr/components/_charts/chart/heatmap/HeatmapChart.js.map +2 -2
- package/dpr/components/_charts/chart/heatmap/HeatmapChart.ts +22 -14
- package/dpr/components/_charts/chart/heatmap/types.js +2 -0
- package/dpr/components/_charts/chart/heatmap/types.js.map +7 -0
- package/dpr/components/_charts/chart/heatmap/types.ts +6 -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 +10 -7
- package/dpr/components/_charts/utils.ts +57 -50
- package/dpr/components/_dashboards/dashboard/view.njk +1 -1
- package/dpr/components/_dashboards/dashboard-list/utils.js +1 -1
- package/dpr/components/_dashboards/dashboard-list/utils.js.map +2 -2
- package/dpr/components/_dashboards/dashboard-list/utils.test.ts +3 -3
- package/dpr/components/_dashboards/dashboard-list/utils.ts +16 -12
- package/dpr/components/_dashboards/dashboard-section/view.njk +1 -1
- package/dpr/components/_dashboards/dashboard-visualisation/DashboardVisualisation.js +2 -0
- package/dpr/components/_dashboards/dashboard-visualisation/DashboardVisualisation.js.map +7 -0
- package/dpr/components/_dashboards/dashboard-visualisation/DashboardVisualisation.ts +40 -0
- package/dpr/components/_dashboards/dashboard-visualisation/types.js +2 -0
- package/dpr/components/_dashboards/dashboard-visualisation/types.js.map +7 -0
- package/dpr/components/_dashboards/dashboard-visualisation/types.ts +102 -0
- package/dpr/components/_dashboards/dashboard-visualisation/view.njk +1 -1
- package/dpr/components/_dashboards/scorecard/Scorecard.js +1 -1
- package/dpr/components/_dashboards/scorecard/Scorecard.js.map +2 -2
- package/dpr/components/_dashboards/scorecard/Scorecard.ts +37 -29
- package/dpr/components/_dashboards/scorecard/types.js.map +1 -1
- package/dpr/components/_dashboards/scorecard/types.ts +1 -0
- package/dpr/components/_dashboards/scorecard/utils.js +1 -1
- package/dpr/components/_dashboards/scorecard/utils.js.map +2 -2
- package/dpr/components/_dashboards/scorecard/utils.test.ts +13 -4
- package/dpr/components/_dashboards/scorecard/utils.ts +6 -5
- package/dpr/components/_dashboards/scorecard/view.njk +6 -5
- package/dpr/components/_dashboards/scorecard-group/view.njk +4 -4
- package/dpr/components/_reports/report-actions/types.d.js.map +1 -1
- package/dpr/components/_reports/report-actions/types.d.ts +1 -1
- package/dpr/components/_reports/report-heading/view.njk +1 -1
- package/dpr/data/dashboardClient.js +1 -1
- package/dpr/data/dashboardClient.js.map +2 -2
- package/dpr/data/dashboardClient.ts +8 -7
- package/dpr/data/reportingClient.js +1 -1
- package/dpr/data/reportingClient.js.map +1 -1
- package/dpr/data/reportingClient.ts +1 -1
- package/dpr/middleware/reportAuthoriser.js +1 -1
- package/dpr/middleware/reportAuthoriser.js.map +3 -3
- package/dpr/middleware/reportAuthoriser.ts +9 -20
- package/dpr/routes/journeys/download-report/controller.js +1 -1
- package/dpr/routes/journeys/download-report/controller.js.map +3 -3
- package/dpr/routes/journeys/download-report/controller.ts +4 -1
- package/dpr/routes/journeys/download-report/request-download/form/submitted/tests.cy.js +1 -1
- package/dpr/routes/journeys/download-report/request-download/form/submitted/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/download-report/request-download/form/submitted/tests.cy.ts +1 -0
- package/dpr/routes/journeys/download-report/request-download/form/tests.cy.js +1 -1
- package/dpr/routes/journeys/download-report/request-download/form/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/download-report/request-download/form/tests.cy.ts +1 -0
- package/dpr/routes/journeys/download-report/tests.cy.js +1 -1
- package/dpr/routes/journeys/download-report/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/download-report/tests.cy.ts +2 -8
- package/dpr/routes/journeys/download-report/utils.js +1 -1
- package/dpr/routes/journeys/download-report/utils.js.map +3 -3
- package/dpr/routes/journeys/download-report/utils.ts +10 -7
- package/dpr/routes/journeys/my-reports/bookmarks/list/tests.cy.js +1 -1
- package/dpr/routes/journeys/my-reports/bookmarks/list/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/my-reports/bookmarks/list/tests.cy.ts +1 -0
- package/dpr/routes/journeys/my-reports/bookmarks/tests.cy.js +1 -1
- package/dpr/routes/journeys/my-reports/bookmarks/tests.cy.js.map +3 -3
- package/dpr/routes/journeys/my-reports/bookmarks/tests.cy.ts +5 -14
- package/dpr/routes/journeys/my-reports/bookmarks/utils.js +1 -1
- package/dpr/routes/journeys/my-reports/bookmarks/utils.js.map +3 -3
- package/dpr/routes/journeys/my-reports/bookmarks/utils.ts +11 -5
- package/dpr/routes/journeys/my-reports/recently-viewed/list/tests.cy.js +1 -1
- package/dpr/routes/journeys/my-reports/recently-viewed/list/tests.cy.js.map +3 -3
- package/dpr/routes/journeys/my-reports/recently-viewed/list/tests.cy.ts +4 -7
- package/dpr/routes/journeys/my-reports/requested-reports/list/tests.cy.js +1 -1
- package/dpr/routes/journeys/my-reports/requested-reports/list/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/my-reports/requested-reports/list/tests.cy.ts +1 -0
- package/dpr/routes/journeys/request-missing-report/form/tests.cy.js +1 -1
- package/dpr/routes/journeys/request-missing-report/form/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/request-missing-report/form/tests.cy.ts +1 -0
- package/dpr/routes/journeys/request-missing-report/tests.cy.js +1 -1
- package/dpr/routes/journeys/request-missing-report/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/request-missing-report/tests.cy.ts +3 -5
- package/dpr/routes/journeys/request-report/filters/tests.cy.js +1 -1
- package/dpr/routes/journeys/request-report/filters/tests.cy.js.map +3 -3
- package/dpr/routes/journeys/request-report/filters/tests.cy.ts +3 -6
- 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 +2 -3
- package/dpr/routes/journeys/request-report/status/tests.cy.js +1 -1
- package/dpr/routes/journeys/request-report/status/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/request-report/status/tests.cy.ts +2 -7
- package/dpr/routes/journeys/request-report/tests.cy.js +1 -1
- package/dpr/routes/journeys/request-report/tests.cy.js.map +3 -3
- package/dpr/routes/journeys/request-report/tests.cy.ts +5 -21
- package/dpr/routes/journeys/view-report/async/controller.js.map +2 -2
- package/dpr/routes/journeys/view-report/async/controller.ts +2 -2
- package/dpr/routes/journeys/view-report/async/dashboard/tests.cy.js +1 -1
- package/dpr/routes/journeys/view-report/async/dashboard/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/view-report/async/dashboard/tests.cy.ts +2 -10
- 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 +100 -95
- package/dpr/routes/journeys/view-report/async/report/controller.js +1 -1
- package/dpr/routes/journeys/view-report/async/report/controller.js.map +3 -3
- package/dpr/routes/journeys/view-report/async/report/controller.ts +4 -6
- package/dpr/routes/journeys/view-report/async/report/tests.cy.js +1 -1
- package/dpr/routes/journeys/view-report/async/report/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/view-report/async/report/tests.cy.ts +8 -19
- package/dpr/routes/journeys/view-report/async/report/types.js +2 -0
- package/dpr/routes/journeys/view-report/async/report/types.js.map +7 -0
- package/dpr/routes/journeys/view-report/async/report/types.ts +31 -0
- package/dpr/routes/journeys/view-report/async/report/utils.js +1 -1
- package/dpr/routes/journeys/view-report/async/report/utils.js.map +3 -3
- package/dpr/routes/journeys/view-report/async/report/utils.ts +173 -136
- package/dpr/routes/journeys/view-report/sync/tests.cy.js +1 -1
- package/dpr/routes/journeys/view-report/sync/tests.cy.js.map +3 -3
- package/dpr/routes/journeys/view-report/sync/tests.cy.ts +3 -5
- package/dpr/services/dashboardService.js +1 -1
- package/dpr/services/dashboardService.js.map +2 -2
- package/dpr/services/dashboardService.ts +7 -5
- package/dpr/services/productCollection/productCollectionService.js +1 -1
- package/dpr/services/productCollection/productCollectionService.js.map +2 -2
- package/dpr/services/productCollection/productCollectionService.ts +3 -3
- package/dpr/services/reportingService.js +1 -1
- package/dpr/services/reportingService.js.map +1 -1
- package/dpr/services/reportingService.ts +1 -1
- package/dpr/types/AsyncReportUtils.js.map +1 -1
- package/dpr/types/AsyncReportUtils.ts +3 -4
- package/dpr/types/Charts.js +1 -1
- package/dpr/types/Charts.js.map +3 -3
- package/dpr/types/Charts.ts +0 -82
- package/dpr/types/Metrics.js +1 -1
- package/dpr/types/Metrics.js.map +1 -1
- package/dpr/types/Metrics.ts +7 -0
- package/dpr/types/ReportQuery.js +1 -1
- package/dpr/types/ReportQuery.js.map +3 -3
- package/dpr/types/ReportQuery.ts +24 -15
- package/dpr/types/Services.d.js +1 -1
- package/dpr/types/Services.d.js.map +1 -1
- package/dpr/types/Services.d.ts +2 -0
- package/dpr/types/api.d.js.map +1 -1
- package/dpr/types/api.d.ts +14 -16
- package/dpr/utils/Personalisation/personalisationUtils.js +1 -1
- package/dpr/utils/Personalisation/personalisationUtils.js.map +3 -3
- package/dpr/utils/Personalisation/personalisationUtils.ts +15 -6
- package/dpr/utils/UserStoreItemBuilder.js +1 -1
- package/dpr/utils/UserStoreItemBuilder.js.map +1 -1
- package/dpr/utils/UserStoreItemBuilder.ts +2 -2
- package/dpr/utils/datasetHelper.js +1 -1
- package/dpr/utils/datasetHelper.js.map +3 -3
- package/dpr/utils/datasetHelper.test.ts +11 -11
- package/dpr/utils/datasetHelper.ts +23 -8
- package/dpr/utils/logger.js +1 -1
- package/dpr/utils/logger.js.map +3 -3
- package/dpr/utils/logger.ts +6 -1
- package/package.json +2 -1
- package/dpr/components/_charts/chart/DashboardVisualisation.js +0 -2
- package/dpr/components/_charts/chart/DashboardVisualisation.js.map +0 -7
- package/dpr/components/_charts/chart/DashboardVisualisation.ts +0 -43
- package/dpr/components/_dashboards/dashboard/types.js +0 -2
- package/dpr/components/_dashboards/dashboard/types.js.map +0 -7
- package/dpr/components/_dashboards/dashboard/types.ts +0 -120
|
@@ -6,13 +6,13 @@
|
|
|
6
6
|
{% set title = group.title %}
|
|
7
7
|
{% set scorecards = group.scorecards %}
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
<
|
|
9
|
+
{% if title %}
|
|
10
|
+
<h4 id="{{ id }}_scorecard_group_{{ loop.index }}" class="govuk-heading-s"><strong>{{ title }}</strong></h3>
|
|
11
11
|
{% endif %}
|
|
12
12
|
|
|
13
|
-
<div class="dpr-scorecard-group">
|
|
13
|
+
<div class="dpr-scorecard-group" {% if title %} aria-labelledby="{{ id }}_scorecard_group_{{ loop.index }}"{% endif %}>
|
|
14
14
|
{% for scorecard in scorecards %}
|
|
15
|
-
{{ dprScoreCard(scorecard) }}
|
|
15
|
+
{{ dprScoreCard(scorecard, loop.index) }}
|
|
16
16
|
{% endfor %}
|
|
17
17
|
</div>
|
|
18
18
|
{% endfor %}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/dpr/components/_reports/report-actions/types.d.ts"],
|
|
4
|
-
"sourcesContent": ["import { LoadType } from '../../../types/UserReports'\n\nexport interface DownloadActionParams {\n enabled: boolean\n csrfToken: string\n reportId: string\n reportName: string\n name: string\n id: string\n tableId?: string\n columns: string[]\n definitionPath: string\n canDownload: boolean\n loadType: LoadType\n currentUrl: string\n currentQueryParams
|
|
4
|
+
"sourcesContent": ["import { LoadType } from '../../../types/UserReports'\n\nexport interface DownloadActionParams {\n enabled: boolean\n csrfToken: string\n reportId: string\n reportName: string\n name: string\n id: string\n tableId?: string\n columns: string[]\n definitionPath: string\n canDownload: boolean\n loadType: LoadType\n currentUrl: string\n currentQueryParams?: string\n nestedBaseUrl: string\n sortColumn?: string\n sortedAsc?: string\n}\n\nexport interface ShareActionParams {\n reportName: string\n name: string\n url: string\n}\n\nexport interface RefreshActionParams {\n url: string\n executionId: string\n}\n\nexport interface PrintActionParams {\n enabled: boolean\n}\n\nexport interface CopyActionParams {\n url: string\n}\n\nexport interface GetActionsParams {\n refresh?: RefreshActionParams\n print?: PrintActionParams\n copy?: CopyActionParams\n share?: ShareActionParams\n download?: DownloadActionParams\n}\n\nexport interface ActionTemplate {\n id: string\n disabled: boolean\n text: string\n ariaLabelText: string\n}\n\nexport interface ActionTemplates {\n refresh: ActionTemplate\n printable: ActionTemplate\n sharable: ActionTemplate\n copy: ActionTemplate\n downloadable: ActionTemplate\n}\n\nexport interface ReportAction {\n id: string\n disabled: boolean\n text: string\n ariaLabelText: string\n href?: string\n attributes?: {\n reportId?: string\n id?: string\n csrfToken?: string\n tableId?: string\n type?: ReportType\n reportName?: string\n name?: string\n columns: string[]\n definitionPath: string\n }\n}\n"],
|
|
5
5
|
"mappings": "kWAAA,IAAAA,EAAA,kBAAAC,EAAAD",
|
|
6
6
|
"names": ["types_d_exports", "__toCommonJS"]
|
|
7
7
|
}
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
{% endif %}
|
|
41
41
|
<div class="dpr-report-heading">
|
|
42
42
|
<div class="dpr-report-heading__title">
|
|
43
|
-
<h1 id="dpr-report-name" class="govuk-heading-
|
|
43
|
+
<h1 id="dpr-report-name" class="govuk-heading-xl">
|
|
44
44
|
<span class="govuk-caption-l">{{ reportName }}</span>
|
|
45
45
|
{{ name }}
|
|
46
46
|
</h1>
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var
|
|
1
|
+
var m=Object.create;var g=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var b=Object.getPrototypeOf,C=Object.prototype.hasOwnProperty;var $=(r,s)=>{for(var t in s)g(r,t,{get:s[t],enumerable:!0})},c=(r,s,t,n)=>{if(s&&typeof s=="object"||typeof s=="function")for(let i of u(s))!C.call(r,i)&&i!==t&&g(r,i,{get:()=>s[i],enumerable:!(n=p(s,i))||n.enumerable});return r};var l=(r,s,t)=>(t=r!=null?m(b(r)):{},c(s||!r||!r.__esModule?g(t,"default",{value:r,enumerable:!0}):t,r)),y=r=>c(g({},"__esModule",{value:!0}),r);var P={};$(P,{DashboardClient:()=>h,default:()=>R});module.exports=y(P);var a=l(require("../utils/logger")),D=l(require("./restClient"));class h{constructor(s){this.restClient=new D.default("Dashboard API Client",s)}getDefinition(s,t,n,i){this.logInfo("Get definition:",{dpdId:n,dashboardId:t});const e={dataProductDefinitionsPath:i};return this.restClient.get({path:`/definitions/${n}/dashboards/${t}`,query:e,token:s}).then(o=>o)}requestAsyncDashboard(s,t,n,i){return this.logInfo("Request dashboard:",{reportId:t,dashboardId:n}),this.restClient.get({path:`/async/dashboards/${t}/${n}`,token:s,query:i}).then(e=>e)}getAsyncDashboard(s,t,n,i,e){return this.logInfo("Get dashboard:",{reportId:t,dashboardId:n,tableId:i}),this.restClient.get({path:`/reports/${t}/dashboards/${n}/tables/${i}/result`,token:s,query:e}).then(o=>o)}getAsyncStatus(s,t,n,i,e,o){return this.logInfo("Get status:",{reportId:t,dashboardId:n,executionId:i,tableId:e}),this.restClient.get({path:`/reports/${t}/dashboards/${n}/statements/${i}/status`,token:s,query:{dataProductDefinitionsPath:o,tableId:e}}).then(f=>f)}cancelAsyncRequest(s,t,n,i,e){return this.logInfo("Cancel request:",{reportId:t,dashboardId:n,executionId:i}),this.restClient.delete({path:`/reports/${t}/dashboards/${n}/statements/${i}`,token:s,query:{dataProductDefinitionsPath:e}}).then(o=>o)}logInfo(s,t){a.default.info(`Dashboard client: ${s}:`),t&&Object.keys(t).length&&a.default.info(JSON.stringify(t,null,2))}}var R=h;0&&(module.exports={DashboardClient});
|
|
2
2
|
//# sourceMappingURL=dashboardClient.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/dpr/data/dashboardClient.ts"],
|
|
4
|
-
"sourcesContent": ["import
|
|
5
|
-
"mappings": "6iBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,
|
|
4
|
+
"sourcesContent": ["import logger from '../utils/logger'\nimport RestClient from './restClient'\nimport Dict = NodeJS.Dict\nimport { ApiConfig } from './types'\nimport { components } from '../types/api'\nimport { DashboardDataResponse } from '../types/Metrics'\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<components['schemas']['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) => <components['schemas']['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: Record<string, string | string[]>,\n ): Promise<DashboardDataResponse[][]> {\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) => <DashboardDataResponse[][]>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,GAAA,IAAAK,EAAmB,8BACnBC,EAAuB,2BAMvB,MAAMJ,CAAgB,CAGpB,YAAYK,EAAmB,CAC7B,KAAK,WAAa,IAAI,EAAAC,QAAW,uBAAwBD,CAAM,CACjE,CAEA,cACEE,EACAC,EACAC,EACAC,EACuD,CACvD,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,GAA2DA,CAAQ,CAC9E,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,EACoC,CACpC,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,GAAwCA,CAAQ,CAC3D,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
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { DashboardDefinition } from '../components/_dashboards/dashboard/types'
|
|
2
1
|
import logger from '../utils/logger'
|
|
3
2
|
import RestClient from './restClient'
|
|
4
3
|
import Dict = NodeJS.Dict
|
|
5
4
|
import { ApiConfig } from './types'
|
|
5
|
+
import { components } from '../types/api'
|
|
6
|
+
import { DashboardDataResponse } from '../types/Metrics'
|
|
6
7
|
|
|
7
8
|
class DashboardClient {
|
|
8
9
|
restClient: RestClient
|
|
@@ -16,7 +17,7 @@ class DashboardClient {
|
|
|
16
17
|
dashboardId: string,
|
|
17
18
|
dpdId: string,
|
|
18
19
|
definitionsPath?: string,
|
|
19
|
-
): Promise<DashboardDefinition> {
|
|
20
|
+
): Promise<components['schemas']['DashboardDefinition']> {
|
|
20
21
|
this.logInfo('Get definition:', { dpdId, dashboardId })
|
|
21
22
|
const query = {
|
|
22
23
|
dataProductDefinitionsPath: definitionsPath,
|
|
@@ -27,7 +28,7 @@ class DashboardClient {
|
|
|
27
28
|
query,
|
|
28
29
|
token,
|
|
29
30
|
})
|
|
30
|
-
.then((response) => <DashboardDefinition>response)
|
|
31
|
+
.then((response) => <components['schemas']['DashboardDefinition']>response)
|
|
31
32
|
}
|
|
32
33
|
|
|
33
34
|
requestAsyncDashboard(
|
|
@@ -52,8 +53,8 @@ class DashboardClient {
|
|
|
52
53
|
reportId: string,
|
|
53
54
|
dashboardId: string,
|
|
54
55
|
tableId: string,
|
|
55
|
-
query:
|
|
56
|
-
): Promise<
|
|
56
|
+
query: Record<string, string | string[]>,
|
|
57
|
+
): Promise<DashboardDataResponse[][]> {
|
|
57
58
|
this.logInfo('Get dashboard:', { reportId, dashboardId, tableId })
|
|
58
59
|
|
|
59
60
|
return this.restClient
|
|
@@ -62,7 +63,7 @@ class DashboardClient {
|
|
|
62
63
|
token,
|
|
63
64
|
query,
|
|
64
65
|
})
|
|
65
|
-
.then((response) => <
|
|
66
|
+
.then((response) => <DashboardDataResponse[][]>response)
|
|
66
67
|
}
|
|
67
68
|
|
|
68
69
|
getAsyncStatus(
|
|
@@ -92,7 +93,7 @@ class DashboardClient {
|
|
|
92
93
|
reportId: string,
|
|
93
94
|
dashboardId: string,
|
|
94
95
|
executionId: string,
|
|
95
|
-
dataProductDefinitionsPath
|
|
96
|
+
dataProductDefinitionsPath?: string,
|
|
96
97
|
): Promise<Dict<string>> {
|
|
97
98
|
this.logInfo('Cancel request:', { reportId, dashboardId, executionId })
|
|
98
99
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var y=Object.create;var u=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var
|
|
1
|
+
var y=Object.create;var u=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var D=Object.getPrototypeOf,C=Object.prototype.hasOwnProperty;var $=(s,e)=>{for(var t in e)u(s,t,{get:e[t],enumerable:!0})},c=(s,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of R(e))!C.call(s,i)&&i!==t&&u(s,i,{get:()=>e[i],enumerable:!(r=f(e,i))||r.enumerable});return s};var m=(s,e,t)=>(t=s!=null?y(D(s)):{},c(e||!s||!s.__esModule?u(t,"default",{value:s,enumerable:!0}):t,s)),P=s=>c(u({},"__esModule",{value:!0}),s);var q={};$(q,{ReportingClient:()=>h,default:()=>A});module.exports=P(q);var a=m(require("../utils/logger")),l=m(require("./restClient"));class h{constructor(e){this.restClient=new l.default("Reporting API Client",e)}getCount(e,t,r){return a.default.info(`Reporting client: Get count. { resourceName: ${e} }`),this.restClient.get({path:`/${e}/count`,query:r.toRecordWithFilterPrefix(!0),token:t}).then(i=>i.count)}getList(e,t,r){return this.getListWithWarnings(e,t,r).then(i=>i.data)}getListWithWarnings(e,t,r){return a.default.info(`Reporting client: Get list. { resourceName: ${e} }`),this.restClient.getWithHeaders({path:`/${e}`,query:r.toRecordWithFilterPrefix(!0),token:t}).then(i=>({data:i.data,warnings:{noDataAvailable:i.headers["x-no-data-warning"]}}))}getDefinitionSummary(e,t,r){this.logInfo("Get definition summary",{reportId:t});const i={dataProductDefinitionsPath:r};return this.restClient.get({path:`/definitions/${t}`,query:i,token:e}).then(n=>n)}getDefinitions(e,t){this.logInfo("Get definitions");const r={query:{renderMethod:"HTML",dataProductDefinitionsPath:t}};return this.restClient.get({path:"/definitions",query:r.query,token:e}).then(i=>i)}getDefinition(e,t,r,i){const n={dataProductDefinitionsPath:i};return this.logInfo("Get definition",{reportId:t,variantId:r}),this.restClient.get({path:`/definitions/${t}/${r}`,query:n,token:e}).then(o=>o)}getFieldValues({token:e,definitionName:t,variantName:r,fieldName:i,prefix:n,definitionsPath:o}){const g={dataProductDefinitionsPath:o,prefix:n};return this.logInfo("Get field values",{definitionName:t,variantName:r,fieldName:i,prefix:n}),this.restClient.get({path:`/reports/${t}/${r}/${i}`,token:e,query:g}).then(p=>p)}requestAsyncReport(e,t,r,i){return this.logInfo("Request report",{reportId:t,variantId:r}),this.restClient.get({path:`/async/reports/${t}/${r}`,token:e,query:i}).then(n=>n)}cancelAsyncRequest(e,t,r,i,n){return this.logInfo("Cancel Request",{reportId:t,variantId:r,executionId:i}),this.restClient.delete({path:`/reports/${t}/${r}/statements/${i}`,token:e,query:{dataProductDefinitionsPath:n}}).then(o=>o)}getAsyncReport(e,t,r,i,n){return this.logInfo("Get Data",{reportId:t,variantId:r,tableId:i}),this.restClient.get({path:`/reports/${t}/${r}/tables/${i}/result`,token:e,query:n}).then(o=>o)}getAsyncSummaryReport(e,t,r,i,n,o){return this.logInfo("Get summary data",{reportId:t,variantId:r,tableId:i,summaryId:n}),this.restClient.get({path:`/reports/${t}/${r}/tables/${i}/result/summary/${n}`,token:e,query:o}).then(g=>g)}getAsyncReportStatus(e,t,r,i,n,o){return this.logInfo("Get status",{reportId:t,variantId:r,tableId:o,executionId:i}),this.restClient.get({path:`/reports/${t}/${r}/statements/${i}/status`,token:e,query:{dataProductDefinitionsPath:n,tableId:o}}).then(g=>g)}getAsyncCount(e,t,r){return this.logInfo("Get count",{tableId:t}),this.restClient.get({path:`/report/tables/${t}/count`,token:e,query:{dataProductDefinitionsPath:r}}).then(i=>i.count)}getAsyncInteractiveCount(e,t,r,i,n){return this.logInfo("Get interactive count",{tableId:t,reportId:r,id:i}),this.restClient.get({path:`/reports/${r}/${i}/tables/${t}/count`,token:e,query:n.toRecordWithFilterPrefix(!0)}).then(o=>o.count)}logInfo(e,t){a.default.info(`Reporting Client: ${e}:`),t&&Object.keys(t).length&&a.default.info(JSON.stringify(t,null,2))}}var A=h;0&&(module.exports={ReportingClient});
|
|
2
2
|
//# sourceMappingURL=reportingClient.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/dpr/data/reportingClient.ts"],
|
|
4
|
-
"sourcesContent": ["import ReportQuery from '../types/ReportQuery'\nimport logger from '../utils/logger'\nimport RestClient from './restClient'\nimport Dict = NodeJS.Dict\nimport { components, operations } from '../types/api'\nimport { ApiConfig, Count, FieldValuesRequest, ListWithWarnings } from './types'\nimport type { ResultWithHeaders } from './restClient'\n\nclass ReportingClient {\n restClient: RestClient\n\n constructor(config: ApiConfig) {\n this.restClient = new RestClient('Reporting API Client', config)\n }\n\n getCount(resourceName: string, token: string, countRequest: ReportQuery): Promise<number> {\n logger.info(`Reporting client: Get count. { resourceName: ${resourceName} }`)\n\n return this.restClient\n .get({\n path: `/${resourceName}/count`,\n query: countRequest.toRecordWithFilterPrefix(true),\n token,\n })\n .then((response) => (<Count>response).count)\n }\n\n getList(resourceName: string, token: string, listRequest: ReportQuery): Promise<Array<Dict<string>>> {\n return this.getListWithWarnings(resourceName, token, listRequest).then((response) => response.data)\n }\n\n getListWithWarnings(resourceName: string, token: string, listRequest: ReportQuery): Promise<ListWithWarnings> {\n logger.info(`Reporting client: Get list. { resourceName: ${resourceName} }`)\n\n return this.restClient\n .getWithHeaders<Array<Dict<string>>>({\n path: `/${resourceName}`,\n query: listRequest.toRecordWithFilterPrefix(true),\n token,\n })\n .then((response: ResultWithHeaders<Array<Dict<string>>>) => ({\n data: response.data,\n warnings: {\n noDataAvailable: response.headers['x-no-data-warning'],\n },\n }))\n }\n\n getDefinitionSummary(\n token: string,\n reportId: string,\n definitionsPath?: string,\n ): Promise<components['schemas']['ReportDefinitionSummary']> {\n this.logInfo('Get definition summary', { reportId })\n\n const queryParams: operations['definitionSummary']['parameters']['query'] = {\n dataProductDefinitionsPath: definitionsPath,\n }\n\n return this.restClient\n .get({\n path: `/definitions/${reportId}`,\n query: queryParams,\n token,\n })\n .then((response) => <components['schemas']['ReportDefinitionSummary']>response)\n }\n\n getDefinitions(\n token: string,\n definitionsPath?: string,\n ): Promise<Array<components['schemas']['ReportDefinitionSummary']>> {\n this.logInfo('Get definitions')\n\n const params: operations['definitions_1']['parameters'] = {\n query: {\n renderMethod: 'HTML',\n dataProductDefinitionsPath: definitionsPath,\n },\n }\n\n return this.restClient\n .get({\n path: '/definitions',\n query: params.query,\n token,\n })\n .then((response) => <Array<components['schemas']['ReportDefinitionSummary']>>response)\n }\n\n getDefinition(\n token: string,\n reportId: string,\n variantId: string,\n definitionsPath?: string,\n ): Promise<components['schemas']['SingleVariantReportDefinition']> {\n const query = {\n dataProductDefinitionsPath: definitionsPath,\n }\n this.logInfo('Get definition', { reportId, variantId })\n\n return this.restClient\n .get({\n path: `/definitions/${reportId}/${variantId}`,\n query,\n token,\n })\n .then((response) => <components['schemas']['SingleVariantReportDefinition']>response)\n }\n\n getFieldValues({\n token,\n definitionName,\n variantName,\n fieldName,\n prefix,\n definitionsPath,\n }: FieldValuesRequest): Promise<Array<string>> {\n const query = {\n dataProductDefinitionsPath: definitionsPath,\n prefix,\n }\n this.logInfo('Get field values', { definitionName, variantName, fieldName, prefix })\n\n return this.restClient\n .get({\n path: `/reports/${definitionName}/${variantName}/${fieldName}`,\n token,\n query,\n })\n .then((response) => <Array<string>>response)\n }\n\n requestAsyncReport(\n token: string,\n reportId: string,\n variantId: string,\n query: Record<string, string | boolean | number>,\n ): Promise<Dict<string>> {\n this.logInfo('Request report', { reportId, variantId })\n\n return this.restClient\n .get({\n path: `/async/reports/${reportId}/${variantId}`,\n token,\n query,\n })\n .then((response) => <Dict<string>>response)\n }\n\n cancelAsyncRequest(\n token: string,\n reportId: string,\n variantId: string,\n executionId: string,\n dataProductDefinitionsPath?: string,\n ): Promise<Dict<string>> {\n this.logInfo('Cancel Request', { reportId, variantId, executionId })\n\n return this.restClient\n .delete({\n path: `/reports/${reportId}/${variantId}/statements/${executionId}`,\n token,\n query: {\n dataProductDefinitionsPath,\n },\n })\n .then((response) => <Dict<string>>response)\n }\n\n getAsyncReport(\n token: string,\n reportId: string,\n variantId: string,\n tableId: string,\n query:
|
|
4
|
+
"sourcesContent": ["import ReportQuery from '../types/ReportQuery'\nimport logger from '../utils/logger'\nimport RestClient from './restClient'\nimport Dict = NodeJS.Dict\nimport { components, operations } from '../types/api'\nimport { ApiConfig, Count, FieldValuesRequest, ListWithWarnings } from './types'\nimport type { ResultWithHeaders } from './restClient'\n\nclass ReportingClient {\n restClient: RestClient\n\n constructor(config: ApiConfig) {\n this.restClient = new RestClient('Reporting API Client', config)\n }\n\n getCount(resourceName: string, token: string, countRequest: ReportQuery): Promise<number> {\n logger.info(`Reporting client: Get count. { resourceName: ${resourceName} }`)\n\n return this.restClient\n .get({\n path: `/${resourceName}/count`,\n query: countRequest.toRecordWithFilterPrefix(true),\n token,\n })\n .then((response) => (<Count>response).count)\n }\n\n getList(resourceName: string, token: string, listRequest: ReportQuery): Promise<Array<Dict<string>>> {\n return this.getListWithWarnings(resourceName, token, listRequest).then((response) => response.data)\n }\n\n getListWithWarnings(resourceName: string, token: string, listRequest: ReportQuery): Promise<ListWithWarnings> {\n logger.info(`Reporting client: Get list. { resourceName: ${resourceName} }`)\n\n return this.restClient\n .getWithHeaders<Array<Dict<string>>>({\n path: `/${resourceName}`,\n query: listRequest.toRecordWithFilterPrefix(true),\n token,\n })\n .then((response: ResultWithHeaders<Array<Dict<string>>>) => ({\n data: response.data,\n warnings: {\n noDataAvailable: response.headers['x-no-data-warning'],\n },\n }))\n }\n\n getDefinitionSummary(\n token: string,\n reportId: string,\n definitionsPath?: string,\n ): Promise<components['schemas']['ReportDefinitionSummary']> {\n this.logInfo('Get definition summary', { reportId })\n\n const queryParams: operations['definitionSummary']['parameters']['query'] = {\n dataProductDefinitionsPath: definitionsPath,\n }\n\n return this.restClient\n .get({\n path: `/definitions/${reportId}`,\n query: queryParams,\n token,\n })\n .then((response) => <components['schemas']['ReportDefinitionSummary']>response)\n }\n\n getDefinitions(\n token: string,\n definitionsPath?: string,\n ): Promise<Array<components['schemas']['ReportDefinitionSummary']>> {\n this.logInfo('Get definitions')\n\n const params: operations['definitions_1']['parameters'] = {\n query: {\n renderMethod: 'HTML',\n dataProductDefinitionsPath: definitionsPath,\n },\n }\n\n return this.restClient\n .get({\n path: '/definitions',\n query: params.query,\n token,\n })\n .then((response) => <Array<components['schemas']['ReportDefinitionSummary']>>response)\n }\n\n getDefinition(\n token: string,\n reportId: string,\n variantId: string,\n definitionsPath?: string,\n ): Promise<components['schemas']['SingleVariantReportDefinition']> {\n const query = {\n dataProductDefinitionsPath: definitionsPath,\n }\n this.logInfo('Get definition', { reportId, variantId })\n\n return this.restClient\n .get({\n path: `/definitions/${reportId}/${variantId}`,\n query,\n token,\n })\n .then((response) => <components['schemas']['SingleVariantReportDefinition']>response)\n }\n\n getFieldValues({\n token,\n definitionName,\n variantName,\n fieldName,\n prefix,\n definitionsPath,\n }: FieldValuesRequest): Promise<Array<string>> {\n const query = {\n dataProductDefinitionsPath: definitionsPath,\n prefix,\n }\n this.logInfo('Get field values', { definitionName, variantName, fieldName, prefix })\n\n return this.restClient\n .get({\n path: `/reports/${definitionName}/${variantName}/${fieldName}`,\n token,\n query,\n })\n .then((response) => <Array<string>>response)\n }\n\n requestAsyncReport(\n token: string,\n reportId: string,\n variantId: string,\n query: Record<string, string | boolean | number>,\n ): Promise<Dict<string>> {\n this.logInfo('Request report', { reportId, variantId })\n\n return this.restClient\n .get({\n path: `/async/reports/${reportId}/${variantId}`,\n token,\n query,\n })\n .then((response) => <Dict<string>>response)\n }\n\n cancelAsyncRequest(\n token: string,\n reportId: string,\n variantId: string,\n executionId: string,\n dataProductDefinitionsPath?: string,\n ): Promise<Dict<string>> {\n this.logInfo('Cancel Request', { reportId, variantId, executionId })\n\n return this.restClient\n .delete({\n path: `/reports/${reportId}/${variantId}/statements/${executionId}`,\n token,\n query: {\n dataProductDefinitionsPath,\n },\n })\n .then((response) => <Dict<string>>response)\n }\n\n getAsyncReport(\n token: string,\n reportId: string,\n variantId: string,\n tableId: string,\n query: Record<string, string | string[]>,\n ): Promise<Array<Dict<string>>> {\n this.logInfo('Get Data', { reportId, variantId, tableId })\n\n return this.restClient\n .get({\n path: `/reports/${reportId}/${variantId}/tables/${tableId}/result`,\n token,\n query,\n })\n .then((response) => <Array<Dict<string>>>response)\n }\n\n getAsyncSummaryReport(\n token: string,\n reportId: string,\n variantId: string,\n tableId: string,\n summaryId: string,\n query: Dict<string | number>,\n ): Promise<Array<Dict<string>>> {\n this.logInfo('Get summary data', { reportId, variantId, tableId, summaryId })\n\n return this.restClient\n .get({\n path: `/reports/${reportId}/${variantId}/tables/${tableId}/result/summary/${summaryId}`,\n token,\n query,\n })\n .then((response) => <Array<Dict<string>>>response)\n }\n\n getAsyncReportStatus(\n token: string,\n reportId: string,\n variantId: string,\n executionId: string,\n dataProductDefinitionsPath?: string,\n tableId?: string,\n ): Promise<Dict<string>> {\n this.logInfo('Get status', { reportId, variantId, tableId, executionId })\n\n return this.restClient\n .get({\n path: `/reports/${reportId}/${variantId}/statements/${executionId}/status`,\n token,\n query: {\n dataProductDefinitionsPath,\n tableId,\n },\n })\n .then((response) => <Dict<string>>response)\n }\n\n getAsyncCount(token: string, tableId: string, dataProductDefinitionsPath?: string): Promise<number> {\n this.logInfo('Get count', { tableId })\n\n return this.restClient\n .get({\n path: `/report/tables/${tableId}/count`,\n token,\n query: {\n dataProductDefinitionsPath,\n },\n })\n .then((response) => (<Count>response).count)\n }\n\n getAsyncInteractiveCount(\n token: string,\n tableId: string,\n reportId: string,\n id: string,\n filters: ReportQuery,\n ): Promise<number> {\n this.logInfo('Get interactive count', { tableId, reportId, id })\n\n return this.restClient\n .get({\n path: `/reports/${reportId}/${id}/tables/${tableId}/count`,\n token,\n query: filters.toRecordWithFilterPrefix(true),\n })\n .then((response) => (<Count>response).count)\n }\n\n logInfo(title: string, args?: Dict<string>) {\n logger.info(`Reporting Client: ${title}:`)\n if (args && Object.keys(args).length) logger.info(JSON.stringify(args, null, 2))\n }\n}\n\nexport { ReportingClient }\nexport default ReportingClient\n"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": ["reportingClient_exports", "__export", "ReportingClient", "reportingClient_default", "__toCommonJS", "import_logger", "import_restClient", "config", "RestClient", "resourceName", "token", "countRequest", "logger", "response", "listRequest", "reportId", "definitionsPath", "queryParams", "params", "variantId", "query", "definitionName", "variantName", "fieldName", "prefix", "executionId", "dataProductDefinitionsPath", "tableId", "summaryId", "id", "filters", "title", "args"]
|
|
7
7
|
}
|
|
@@ -173,7 +173,7 @@ class ReportingClient {
|
|
|
173
173
|
reportId: string,
|
|
174
174
|
variantId: string,
|
|
175
175
|
tableId: string,
|
|
176
|
-
query:
|
|
176
|
+
query: Record<string, string | string[]>,
|
|
177
177
|
): Promise<Array<Dict<string>>> {
|
|
178
178
|
this.logInfo('Get Data', { reportId, variantId, tableId })
|
|
179
179
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var
|
|
1
|
+
var S=Object.create;var n=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var R=Object.getPrototypeOf,D=Object.prototype.hasOwnProperty;var w=(e,t)=>{for(var r in t)n(e,r,{get:t[r],enumerable:!0})},p=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of P(t))!D.call(e,i)&&i!==r&&n(e,i,{get:()=>t[i],enumerable:!(o=v(t,i))||o.enumerable});return e};var H=(e,t,r)=>(r=e!=null?S(R(e)):{},p(t||!e||!e.__esModule?n(r,"default",{value:e,enumerable:!0}):r,e)),b=e=>p(n({},"__esModule",{value:!0}),e);var I={};w(I,{default:()=>x,reportAuthoriser:()=>m});module.exports=b(I);var c=H(require("../utils/localsHelper")),f=require("../types/UserReports");const m=(e,t)=>async(r,o,i)=>{const{token:a}=c.default.getValues(o),{reportId:d,id:l,variantId:y,type:g}=r.params,s=r.query.dataProductDefinitionsPath,u=await e.reportingService.getDefinitionSummary(a,d,s),h=g===f.ReportType.REPORT?e.reportingService:e.dashboardService;o.locals.definition=await h.getDefinition(a,d,y||l,s),u?.authorised!==void 0&&!u.authorised?o.render("dpr/routes/journeys/view-report/unauthorised",{layoutPath:t,...r.body}):i()};var x=m;0&&(module.exports={reportAuthoriser});
|
|
2
2
|
//# sourceMappingURL=reportAuthoriser.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/dpr/middleware/reportAuthoriser.ts"],
|
|
4
|
-
"sourcesContent": ["import { RequestHandler } from 'express'\nimport LocalsHelper from '../utils/localsHelper'\nimport { Services } from '../types/Services'\nimport { ReportType } from '../types/UserReports'\n\nexport const reportAuthoriser = (services: Services, layoutPath: string): RequestHandler => {\n return async (req, res, next) => {\n const { token } = LocalsHelper.getValues(res)\n const { reportId, id, variantId, type } = req.params\n const
|
|
5
|
-
"mappings": "6iBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,qBAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAAyB,oCAEzBC,EAA2B,gCAEpB,MAAMH,EAAmB,CAACI,EAAoBC,IAC5C,MAAOC,EAAKC,EAAKC,IAAS,CAC/B,KAAM,CAAE,MAAAC,CAAM,EAAI,EAAAC,QAAa,UAAUH,CAAG,EACtC,CAAE,SAAAI,EAAU,GAAAC,EAAI,UAAAC,EAAW,KAAAC,CAAK,EAAIR,EAAI,
|
|
6
|
-
"names": ["reportAuthoriser_exports", "__export", "reportAuthoriser_default", "reportAuthoriser", "__toCommonJS", "import_localsHelper", "import_UserReports", "services", "layoutPath", "req", "res", "next", "token", "LocalsHelper", "reportId", "id", "variantId", "type", "dataProductDefinitionsPath", "
|
|
4
|
+
"sourcesContent": ["import { RequestHandler } from 'express'\nimport LocalsHelper from '../utils/localsHelper'\nimport { Services } from '../types/Services'\nimport { ReportType } from '../types/UserReports'\n\nexport const reportAuthoriser = (services: Services, layoutPath: string): RequestHandler => {\n return async (req, res, next) => {\n const { token } = LocalsHelper.getValues(res)\n const { reportId, id, variantId, type } = req.params\n const dataProductDefinitionsPath = <string | undefined>req.query.dataProductDefinitionsPath\n\n const definitionSummary = await services.reportingService.getDefinitionSummary(\n token,\n reportId,\n dataProductDefinitionsPath,\n )\n\n const service = type === ReportType.REPORT ? services.reportingService : services.dashboardService\n res.locals.definition = await service.getDefinition(token, reportId, variantId || id, dataProductDefinitionsPath)\n\n if (definitionSummary?.authorised !== undefined && !definitionSummary.authorised) {\n res.render(`dpr/routes/journeys/view-report/unauthorised`, {\n layoutPath,\n ...req.body,\n })\n } else {\n next()\n }\n }\n}\n\nexport default reportAuthoriser\n"],
|
|
5
|
+
"mappings": "6iBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,qBAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAAyB,oCAEzBC,EAA2B,gCAEpB,MAAMH,EAAmB,CAACI,EAAoBC,IAC5C,MAAOC,EAAKC,EAAKC,IAAS,CAC/B,KAAM,CAAE,MAAAC,CAAM,EAAI,EAAAC,QAAa,UAAUH,CAAG,EACtC,CAAE,SAAAI,EAAU,GAAAC,EAAI,UAAAC,EAAW,KAAAC,CAAK,EAAIR,EAAI,OACxCS,EAAiDT,EAAI,MAAM,2BAE3DU,EAAoB,MAAMZ,EAAS,iBAAiB,qBACxDK,EACAE,EACAI,CACF,EAEME,EAAUH,IAAS,aAAW,OAASV,EAAS,iBAAmBA,EAAS,iBAClFG,EAAI,OAAO,WAAa,MAAMU,EAAQ,cAAcR,EAAOE,EAAUE,GAAaD,EAAIG,CAA0B,EAE5GC,GAAmB,aAAe,QAAa,CAACA,EAAkB,WACpET,EAAI,OAAO,+CAAgD,CACzD,WAAAF,EACA,GAAGC,EAAI,IACT,CAAC,EAEDE,EAAK,CAET,EAGF,IAAOT,EAAQC",
|
|
6
|
+
"names": ["reportAuthoriser_exports", "__export", "reportAuthoriser_default", "reportAuthoriser", "__toCommonJS", "import_localsHelper", "import_UserReports", "services", "layoutPath", "req", "res", "next", "token", "LocalsHelper", "reportId", "id", "variantId", "type", "dataProductDefinitionsPath", "definitionSummary", "service"]
|
|
7
7
|
}
|
|
@@ -7,29 +7,18 @@ export const reportAuthoriser = (services: Services, layoutPath: string): Reques
|
|
|
7
7
|
return async (req, res, next) => {
|
|
8
8
|
const { token } = LocalsHelper.getValues(res)
|
|
9
9
|
const { reportId, id, variantId, type } = req.params
|
|
10
|
-
const
|
|
10
|
+
const dataProductDefinitionsPath = <string | undefined>req.query.dataProductDefinitionsPath
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
variantId || id,
|
|
18
|
-
dataProductDefinitionsPath,
|
|
19
|
-
)
|
|
20
|
-
}
|
|
12
|
+
const definitionSummary = await services.reportingService.getDefinitionSummary(
|
|
13
|
+
token,
|
|
14
|
+
reportId,
|
|
15
|
+
dataProductDefinitionsPath,
|
|
16
|
+
)
|
|
21
17
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
token,
|
|
25
|
-
reportId,
|
|
26
|
-
variantId || id,
|
|
27
|
-
dataProductDefinitionsPath,
|
|
28
|
-
)
|
|
29
|
-
}
|
|
18
|
+
const service = type === ReportType.REPORT ? services.reportingService : services.dashboardService
|
|
19
|
+
res.locals.definition = await service.getDefinition(token, reportId, variantId || id, dataProductDefinitionsPath)
|
|
30
20
|
|
|
31
|
-
|
|
32
|
-
if (definition?.authorised !== undefined && !definition.authorised) {
|
|
21
|
+
if (definitionSummary?.authorised !== undefined && !definitionSummary.authorised) {
|
|
33
22
|
res.render(`dpr/routes/journeys/view-report/unauthorised`, {
|
|
34
23
|
layoutPath,
|
|
35
24
|
...req.body,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var
|
|
1
|
+
var y=Object.create;var a=Object.defineProperty;var P=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var D=Object.getPrototypeOf,R=Object.prototype.hasOwnProperty;var b=(o,e)=>{for(var r in e)a(o,r,{get:e[r],enumerable:!0})},c=(o,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of S(e))!R.call(o,t)&&t!==r&&a(o,t,{get:()=>e[t],enumerable:!(i=P(e,t))||i.enumerable});return o};var p=(o,e,r)=>(r=o!=null?y(D(o)):{},c(e||!o||!o.__esModule?a(r,"default",{value:o,enumerable:!0}):r,o)),g=o=>c(a({},"__esModule",{value:!0}),o);var H={};b(H,{DownloadReportController:()=>l,default:()=>x});module.exports=g(H);var m=p(require("../../../utils/localsHelper")),u=p(require("./utils"));class l{constructor(e,r){this.POST=async(e,r,i)=>{const{dprUser:t}=m.default.getValues(r),{reportId:w,id:v,loadType:f,currentUrl:h,currentQueryParams:d}=e.body;let s=`${h}/download-disabled`;s=d?`${s}${d}`:s;const{downloadPermissionService:n}=this.services;(n?await n.downloadEnabled(t.id,w,v):!1)?await u.default.downloadReport({req:e,res:r,services:this.services,redirect:s,loadType:f}):r.redirect(s)};this.layoutPath=e,this.services=r}}var x=l;0&&(module.exports={DownloadReportController});
|
|
2
2
|
//# sourceMappingURL=controller.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/dpr/routes/journeys/download-report/controller.ts"],
|
|
4
|
-
"sourcesContent": ["import { RequestHandler } from 'express'\nimport LocalsHelper from '../../../utils/localsHelper'\nimport DownloadUtils from './utils'\nimport { Services } from '../../../types/Services'\n\nclass DownloadReportController {\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 POST: RequestHandler = async (req, res, next) => {\n const { dprUser } = LocalsHelper.getValues(res)\n const { reportId, id, loadType, currentUrl, currentQueryParams } = req.body\n\n let redirect = `${currentUrl}/download-disabled`\n redirect = currentQueryParams ? `${redirect}${currentQueryParams}` : redirect\n\n const
|
|
5
|
-
"mappings": "6iBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,8BAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAAyB,0CACzBC,EAA0B,sBAG1B,MAAMJ,CAAyB,CAK7B,YAAYK,EAAoBC,EAAoB,CAKpD,UAAuB,MAAOC,EAAKC,EAAKC,IAAS,CAC/C,KAAM,CAAE,QAAAC,CAAQ,EAAI,EAAAC,QAAa,UAAUH,CAAG,EACxC,CAAE,SAAAI,EAAU,GAAAC,EAAI,SAAAC,EAAU,WAAAC,EAAY,mBAAAC,CAAmB,EAAIT,EAAI,KAEvE,IAAIU,EAAW,GAAGF,CAAU,qBAC5BE,EAAWD,EAAqB,GAAGC,CAAQ,GAAGD,CAAkB,GAAKC,
|
|
6
|
-
"names": ["controller_exports", "__export", "DownloadReportController", "controller_default", "__toCommonJS", "import_localsHelper", "import_utils", "layoutPath", "services", "req", "res", "next", "dprUser", "LocalsHelper", "reportId", "id", "loadType", "currentUrl", "currentQueryParams", "redirect", "DownloadUtils"]
|
|
4
|
+
"sourcesContent": ["import { RequestHandler } from 'express'\nimport LocalsHelper from '../../../utils/localsHelper'\nimport DownloadUtils from './utils'\nimport { Services } from '../../../types/Services'\n\nclass DownloadReportController {\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 POST: RequestHandler = async (req, res, next) => {\n const { dprUser } = LocalsHelper.getValues(res)\n const { reportId, id, loadType, currentUrl, currentQueryParams } = req.body\n\n let redirect = `${currentUrl}/download-disabled`\n redirect = currentQueryParams ? `${redirect}${currentQueryParams}` : redirect\n\n const { downloadPermissionService } = this.services\n const canDownload = downloadPermissionService\n ? await downloadPermissionService.downloadEnabled(dprUser.id, reportId, id)\n : false\n\n if (canDownload) {\n await DownloadUtils.downloadReport({ req, res, services: this.services, redirect, loadType })\n } else {\n res.redirect(redirect)\n }\n }\n}\n\nexport { DownloadReportController }\nexport default DownloadReportController\n"],
|
|
5
|
+
"mappings": "6iBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,8BAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAAyB,0CACzBC,EAA0B,sBAG1B,MAAMJ,CAAyB,CAK7B,YAAYK,EAAoBC,EAAoB,CAKpD,UAAuB,MAAOC,EAAKC,EAAKC,IAAS,CAC/C,KAAM,CAAE,QAAAC,CAAQ,EAAI,EAAAC,QAAa,UAAUH,CAAG,EACxC,CAAE,SAAAI,EAAU,GAAAC,EAAI,SAAAC,EAAU,WAAAC,EAAY,mBAAAC,CAAmB,EAAIT,EAAI,KAEvE,IAAIU,EAAW,GAAGF,CAAU,qBAC5BE,EAAWD,EAAqB,GAAGC,CAAQ,GAAGD,CAAkB,GAAKC,EAErE,KAAM,CAAE,0BAAAC,CAA0B,EAAI,KAAK,UACvBA,EAChB,MAAMA,EAA0B,gBAAgBR,EAAQ,GAAIE,EAAUC,CAAE,EACxE,IAGF,MAAM,EAAAM,QAAc,eAAe,CAAE,IAAAZ,EAAK,IAAAC,EAAK,SAAU,KAAK,SAAU,SAAAS,EAAU,SAAAH,CAAS,CAAC,EAE5FN,EAAI,SAASS,CAAQ,CAEzB,EArBE,KAAK,WAAaZ,EAClB,KAAK,SAAWC,CAClB,CAoBF,CAGA,IAAOL,EAAQD",
|
|
6
|
+
"names": ["controller_exports", "__export", "DownloadReportController", "controller_default", "__toCommonJS", "import_localsHelper", "import_utils", "layoutPath", "services", "req", "res", "next", "dprUser", "LocalsHelper", "reportId", "id", "loadType", "currentUrl", "currentQueryParams", "redirect", "downloadPermissionService", "DownloadUtils"]
|
|
7
7
|
}
|
|
@@ -20,7 +20,10 @@ class DownloadReportController {
|
|
|
20
20
|
let redirect = `${currentUrl}/download-disabled`
|
|
21
21
|
redirect = currentQueryParams ? `${redirect}${currentQueryParams}` : redirect
|
|
22
22
|
|
|
23
|
-
const
|
|
23
|
+
const { downloadPermissionService } = this.services
|
|
24
|
+
const canDownload = downloadPermissionService
|
|
25
|
+
? await downloadPermissionService.downloadEnabled(dprUser.id, reportId, id)
|
|
26
|
+
: false
|
|
24
27
|
|
|
25
28
|
if (canDownload) {
|
|
26
29
|
await DownloadUtils.downloadReport({ req, res, services: this.services, redirect, loadType })
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
context("Request download form submitted",()=>{before(()=>{cy.task("resetStubs"),cy.task("resetRedis"),cy.task("stubDefinitions")}),it("is accessible",()=>{cy.visit("/embedded/platform/dpr/download-report/request-download/request-examples/request-example-success/tableId/tblId_1753863906851/form/submitted?reportName=C%20Test%20Report&variantName=Successful%20Report&reportUrl=/embedded/platform/dpr/view-report/async/report/request-examples/request-example-success/tblId_1753863906851/report"),cy.injectAxe(),cy.checkA11y(),cy.findByText(/Download is now enabled for this report/).should("be.visible")})});
|
|
1
|
+
context("Request download form submitted",()=>{before(()=>{cy.task("resetStubs"),cy.task("resetRedis"),cy.task("stubDefinitions"),cy.task("stubSingleSummaries")}),it("is accessible",()=>{cy.visit("/embedded/platform/dpr/download-report/request-download/request-examples/request-example-success/tableId/tblId_1753863906851/form/submitted?reportName=C%20Test%20Report&variantName=Successful%20Report&reportUrl=/embedded/platform/dpr/view-report/async/report/request-examples/request-example-success/tblId_1753863906851/report"),cy.injectAxe(),cy.checkA11y(),cy.findByText(/Download is now enabled for this report/).should("be.visible")})});
|
|
2
2
|
//# sourceMappingURL=tests.cy.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../../src/dpr/routes/journeys/download-report/request-download/form/submitted/tests.cy.ts"],
|
|
4
|
-
"sourcesContent": ["context('Request download form submitted', () => {\n before(() => {\n cy.task('resetStubs')\n cy.task('resetRedis')\n cy.task('stubDefinitions')\n })\n\n it('is accessible', () => {\n cy.visit(\n '/embedded/platform/dpr/download-report/request-download/request-examples/request-example-success/tableId/tblId_1753863906851/form/submitted?reportName=C%20Test%20Report&variantName=Successful%20Report&reportUrl=/embedded/platform/dpr/view-report/async/report/request-examples/request-example-success/tblId_1753863906851/report',\n )\n cy.injectAxe()\n cy.checkA11y()\n cy.findByText(/Download is now enabled for this report/).should('be.visible')\n })\n})\n"],
|
|
5
|
-
"mappings": "AAAA,QAAQ,kCAAmC,IAAM,CAC/C,OAAO,IAAM,CACX,GAAG,KAAK,YAAY,EACpB,GAAG,KAAK,YAAY,EACpB,GAAG,KAAK,iBAAiB,
|
|
4
|
+
"sourcesContent": ["context('Request download form submitted', () => {\n before(() => {\n cy.task('resetStubs')\n cy.task('resetRedis')\n cy.task('stubDefinitions')\n cy.task('stubSingleSummaries')\n })\n\n it('is accessible', () => {\n cy.visit(\n '/embedded/platform/dpr/download-report/request-download/request-examples/request-example-success/tableId/tblId_1753863906851/form/submitted?reportName=C%20Test%20Report&variantName=Successful%20Report&reportUrl=/embedded/platform/dpr/view-report/async/report/request-examples/request-example-success/tblId_1753863906851/report',\n )\n cy.injectAxe()\n cy.checkA11y()\n cy.findByText(/Download is now enabled for this report/).should('be.visible')\n })\n})\n"],
|
|
5
|
+
"mappings": "AAAA,QAAQ,kCAAmC,IAAM,CAC/C,OAAO,IAAM,CACX,GAAG,KAAK,YAAY,EACpB,GAAG,KAAK,YAAY,EACpB,GAAG,KAAK,iBAAiB,EACzB,GAAG,KAAK,qBAAqB,CAC/B,CAAC,EAED,GAAG,gBAAiB,IAAM,CACxB,GAAG,MACD,wUACF,EACA,GAAG,UAAU,EACb,GAAG,UAAU,EACb,GAAG,WAAW,yCAAyC,EAAE,OAAO,YAAY,CAC9E,CAAC,CACH,CAAC",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
context("Request download form",()=>{const e="/embedded/platform/dpr/download-report/request-download/request-examples/request-example-success/tableId/tblId_1753863906851/form?reportUrl=/embedded/platform/dpr/view-report/async/report/request-examples/request-example-success/tblId_1753863906851/report";before(()=>{cy.task("resetStubs"),cy.task("resetRedis"),cy.task("stubDefinitions"),cy.task("stubDefinitionRequestExamplesSuccess")}),it("is accessible",()=>{cy.visit(e),cy.injectAxe(),cy.checkA11y(),cy.findByRole("heading",{name:/Download request form/}).should("be.visible"),cy.findByRole("button",{name:/Submit request/}).click(),cy.findByRole("link",{name:/provide information on how you will use this data/}).should("be.visible").click(),cy.findByRole("textbox",{name:/Can you provide more detail/}).should("be.focused").type("foo"),cy.findByRole("link",{name:/Enter your Job title/}).should("be.visible").click(),cy.findByRole("textbox",{name:/What is your Job title\?/}).should("be.focused").type("foo"),cy.findByRole("button",{name:/Submit request/}).click(),cy.findByRole("heading",{name:/Download request form/}).should("not.exist")})});
|
|
1
|
+
context("Request download form",()=>{const e="/embedded/platform/dpr/download-report/request-download/request-examples/request-example-success/tableId/tblId_1753863906851/form?reportUrl=/embedded/platform/dpr/view-report/async/report/request-examples/request-example-success/tblId_1753863906851/report";before(()=>{cy.task("resetStubs"),cy.task("resetRedis"),cy.task("stubDefinitions"),cy.task("stubSingleSummaries"),cy.task("stubDefinitionRequestExamplesSuccess")}),it("is accessible",()=>{cy.visit(e),cy.injectAxe(),cy.checkA11y(),cy.findByRole("heading",{name:/Download request form/}).should("be.visible"),cy.findByRole("button",{name:/Submit request/}).click(),cy.findByRole("link",{name:/provide information on how you will use this data/}).should("be.visible").click(),cy.findByRole("textbox",{name:/Can you provide more detail/}).should("be.focused").type("foo"),cy.findByRole("link",{name:/Enter your Job title/}).should("be.visible").click(),cy.findByRole("textbox",{name:/What is your Job title\?/}).should("be.focused").type("foo"),cy.findByRole("button",{name:/Submit request/}).click(),cy.findByRole("heading",{name:/Download request form/}).should("not.exist")})});
|
|
2
2
|
//# sourceMappingURL=tests.cy.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../src/dpr/routes/journeys/download-report/request-download/form/tests.cy.ts"],
|
|
4
|
-
"sourcesContent": ["context('Request download form', () => {\n const path =\n '/embedded/platform/dpr/download-report/request-download/request-examples/request-example-success/tableId/tblId_1753863906851/form?reportUrl=/embedded/platform/dpr/view-report/async/report/request-examples/request-example-success/tblId_1753863906851/report'\n\n before(() => {\n cy.task('resetStubs')\n cy.task('resetRedis')\n cy.task('stubDefinitions')\n cy.task('stubDefinitionRequestExamplesSuccess')\n })\n\n it('is accessible', () => {\n cy.visit(path)\n cy.injectAxe()\n cy.checkA11y()\n cy.findByRole('heading', { name: /Download request form/ }).should('be.visible')\n cy.findByRole('button', { name: /Submit request/ }).click()\n cy.findByRole('link', { name: /provide information on how you will use this data/ })\n .should('be.visible')\n .click()\n cy.findByRole('textbox', { name: /Can you provide more detail/ })\n .should('be.focused')\n .type('foo')\n cy.findByRole('link', { name: /Enter your Job title/ })\n .should('be.visible')\n .click()\n cy.findByRole('textbox', { name: /What is your Job title\\?/ })\n .should('be.focused')\n .type('foo')\n cy.findByRole('button', { name: /Submit request/ }).click()\n cy.findByRole('heading', { name: /Download request form/ }).should('not.exist')\n })\n})\n"],
|
|
5
|
-
"mappings": "AAAA,QAAQ,wBAAyB,IAAM,CACrC,MAAMA,EACJ,kQAEF,OAAO,IAAM,CACX,GAAG,KAAK,YAAY,EACpB,GAAG,KAAK,YAAY,EACpB,GAAG,KAAK,iBAAiB,EACzB,GAAG,KAAK,sCAAsC,CAChD,CAAC,EAED,GAAG,gBAAiB,IAAM,CACxB,GAAG,MAAMA,CAAI,EACb,GAAG,UAAU,EACb,GAAG,UAAU,EACb,GAAG,WAAW,UAAW,CAAE,KAAM,uBAAwB,CAAC,EAAE,OAAO,YAAY,EAC/E,GAAG,WAAW,SAAU,CAAE,KAAM,gBAAiB,CAAC,EAAE,MAAM,EAC1D,GAAG,WAAW,OAAQ,CAAE,KAAM,mDAAoD,CAAC,EAChF,OAAO,YAAY,EACnB,MAAM,EACT,GAAG,WAAW,UAAW,CAAE,KAAM,6BAA8B,CAAC,EAC7D,OAAO,YAAY,EACnB,KAAK,KAAK,EACb,GAAG,WAAW,OAAQ,CAAE,KAAM,sBAAuB,CAAC,EACnD,OAAO,YAAY,EACnB,MAAM,EACT,GAAG,WAAW,UAAW,CAAE,KAAM,0BAA2B,CAAC,EAC1D,OAAO,YAAY,EACnB,KAAK,KAAK,EACb,GAAG,WAAW,SAAU,CAAE,KAAM,gBAAiB,CAAC,EAAE,MAAM,EAC1D,GAAG,WAAW,UAAW,CAAE,KAAM,uBAAwB,CAAC,EAAE,OAAO,WAAW,CAChF,CAAC,CACH,CAAC",
|
|
4
|
+
"sourcesContent": ["context('Request download form', () => {\n const path =\n '/embedded/platform/dpr/download-report/request-download/request-examples/request-example-success/tableId/tblId_1753863906851/form?reportUrl=/embedded/platform/dpr/view-report/async/report/request-examples/request-example-success/tblId_1753863906851/report'\n\n before(() => {\n cy.task('resetStubs')\n cy.task('resetRedis')\n cy.task('stubDefinitions')\n cy.task('stubSingleSummaries')\n cy.task('stubDefinitionRequestExamplesSuccess')\n })\n\n it('is accessible', () => {\n cy.visit(path)\n cy.injectAxe()\n cy.checkA11y()\n cy.findByRole('heading', { name: /Download request form/ }).should('be.visible')\n cy.findByRole('button', { name: /Submit request/ }).click()\n cy.findByRole('link', { name: /provide information on how you will use this data/ })\n .should('be.visible')\n .click()\n cy.findByRole('textbox', { name: /Can you provide more detail/ })\n .should('be.focused')\n .type('foo')\n cy.findByRole('link', { name: /Enter your Job title/ })\n .should('be.visible')\n .click()\n cy.findByRole('textbox', { name: /What is your Job title\\?/ })\n .should('be.focused')\n .type('foo')\n cy.findByRole('button', { name: /Submit request/ }).click()\n cy.findByRole('heading', { name: /Download request form/ }).should('not.exist')\n })\n})\n"],
|
|
5
|
+
"mappings": "AAAA,QAAQ,wBAAyB,IAAM,CACrC,MAAMA,EACJ,kQAEF,OAAO,IAAM,CACX,GAAG,KAAK,YAAY,EACpB,GAAG,KAAK,YAAY,EACpB,GAAG,KAAK,iBAAiB,EACzB,GAAG,KAAK,qBAAqB,EAC7B,GAAG,KAAK,sCAAsC,CAChD,CAAC,EAED,GAAG,gBAAiB,IAAM,CACxB,GAAG,MAAMA,CAAI,EACb,GAAG,UAAU,EACb,GAAG,UAAU,EACb,GAAG,WAAW,UAAW,CAAE,KAAM,uBAAwB,CAAC,EAAE,OAAO,YAAY,EAC/E,GAAG,WAAW,SAAU,CAAE,KAAM,gBAAiB,CAAC,EAAE,MAAM,EAC1D,GAAG,WAAW,OAAQ,CAAE,KAAM,mDAAoD,CAAC,EAChF,OAAO,YAAY,EACnB,MAAM,EACT,GAAG,WAAW,UAAW,CAAE,KAAM,6BAA8B,CAAC,EAC7D,OAAO,YAAY,EACnB,KAAK,KAAK,EACb,GAAG,WAAW,OAAQ,CAAE,KAAM,sBAAuB,CAAC,EACnD,OAAO,YAAY,EACnB,MAAM,EACT,GAAG,WAAW,UAAW,CAAE,KAAM,0BAA2B,CAAC,EAC1D,OAAO,YAAY,EACnB,KAAK,KAAK,EACb,GAAG,WAAW,SAAU,CAAE,KAAM,gBAAiB,CAAC,EAAE,MAAM,EAC1D,GAAG,WAAW,UAAW,CAAE,KAAM,uBAAwB,CAAC,EAAE,OAAO,WAAW,CAChF,CAAC,CACH,CAAC",
|
|
6
6
|
"names": ["path"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var
|
|
1
|
+
var s=require("test-app/routes/integrationTests/redisStateTestUtils"),o=require("../../../../../cypress-tests/cypressUtils");context("Download report",()=>{const d="/embedded/platform/";let t,l;before(()=>{(0,o.executeReportStubs)(),cy.task("stubDefinitionRequestExamplesSuccess"),cy.task("stubRequestSuccessResult20"),cy.task("stubRequestSuccessResult100"),cy.visit(d),cy.findByLabelText(/Reports catalogue.*/i).within(()=>{cy.findByRole("row",{name:(e,i)=>i.textContent.includes("Successful Report")&&i.textContent.includes("this will succeed")}).within(()=>{cy.findByRole("link",{name:"Request report"}).click()})}),(0,o.checkA11y)(),cy.findByRole("button",{name:/Request/}).click(),(0,o.checkA11y)(),cy.findByRole("heading",{level:1,name:/Successful Report/}).should("be.visible"),cy.url().then(e=>{l=e})}),beforeEach(()=>{cy.visit(l)}),describe("Enabling download",()=>{it("should show the enable download button",()=>{cy.findByLabelText(/Enable download/).should("exist").should("be.visible"),cy.findByRole("heading",{name:"To download this report"}).should("not.exist")}),it("should show the download disabled message with link to form",()=>{cy.findByLabelText(/Enable download/).click(),cy.url().should("have.string","/report/download-disabled"),cy.findByRole("heading",{name:"To download this report"}).should("be.visible"),cy.findByRole("link",{name:"Fill out a form"})}),it("should go to the request download form",()=>{cy.findByLabelText(/Enable download/).click(),cy.findByRole("link",{name:"Fill out a form"}).click(),cy.url().then(e=>{t=e}),cy.url().should("match",/\/embedded\/platform\/dpr\/download-report\/request-download\/request-examples\/request-example-success\/tableId\/tblId_[0-9]+\/form/),cy.location().should(e=>{expect(e.search).to.match(/.*reportUrl=\/embedded\/platform\/dpr\/view-report\/async\/report\/request-examples\/request-example-success\/tblId_[0-9]+\/report/)})})}),describe("Requesting download",()=>{it("should prefill the user data in the request form",()=>{cy.visit(t),cy.findByRole("textbox",{name:"What is your Full name?"}).should("have.value","Test User"),cy.findByRole("textbox",{name:"What is your Email address?"}).should("have.value","test@user.com")}),it("should validate the required fields",()=>{cy.visit(t),cy.findByRole("alert").should("not.exist"),cy.findAllByRole("paragraph").contains("Enter your Job title").should("not.exist"),cy.findAllByRole("paragraph").contains("provide information on how you will use this data").should("not.exist"),cy.get("#more-detail-error").should("not.be.visible"),cy.findByRole("button",{name:/Submit request/}).click(),cy.findByRole("alert").should("exist"),cy.findAllByRole("paragraph").contains("Enter your Job title").should("exist"),cy.findAllByRole("paragraph").contains("provide information on how you will use this data").should("exist")}),it("should submit the download request",()=>{cy.visit(t),cy.findByRole("textbox",{name:"What is your Job title?"}).type("Software engineer"),cy.findByRole("textbox",{name:"Can you provide more detail"}).type("I like this report"),cy.findByRole("button",{name:"Submit request"}).click(),cy.findByText(/You have been granted permission/).should("be.visible"),cy.url().as("downloadRequestSubmittedPage"),cy.url().and("match",/dpr\/download-report\/request-download\/request-examples\/request-example-success\/tableId\/tblId_[0-9]+\/form\/submitted/),cy.findByRole("link",{name:/Return to report to download/}).click(),cy.findAllByRole("heading").contains("Successful Report").should("exist"),cy.findByRole("button",{name:/download/}).should("be.visible"),cy.task("stubRequestSuccessResult10MissingFirstRow"),cy.findByRole("button",{name:/download/}).click(),cy.task("checkContents10RowExcelValid").should("equal",!0)}),it("should redirect on trying to download after having the permission to download removed",()=>{(0,s.updateRedisState)("downloadPermissions",[]),cy.findByRole("heading",{name:/To download this report/}).should("not.exist"),cy.findByRole("button",{name:/download/}).click(),cy.findByRole("heading",{name:/To download this report/}).should("be.visible")})})});
|
|
2
2
|
//# sourceMappingURL=tests.cy.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/dpr/routes/journeys/download-report/tests.cy.ts"],
|
|
4
|
-
"sourcesContent": ["import { updateRedisState } from 'test-app/routes/integrationTests/redisStateTestUtils'\nimport { checkA11y } from '../../../../../cypress-tests/cypressUtils'\n\ncontext('Download report', () => {\n const path = '/embedded/platform/'\n let downloadRequestFormPage: string\n let viewReportUrl: string\n\n before(() => {\n
|
|
5
|
-
"mappings": "AAAA,IAAAA,EAAiC,gEACjCC,
|
|
4
|
+
"sourcesContent": ["import { updateRedisState } from 'test-app/routes/integrationTests/redisStateTestUtils'\nimport { checkA11y, executeReportStubs } from '../../../../../cypress-tests/cypressUtils'\n\ncontext('Download report', () => {\n const path = '/embedded/platform/'\n let downloadRequestFormPage: string\n let viewReportUrl: string\n\n before(() => {\n executeReportStubs()\n cy.task('stubDefinitionRequestExamplesSuccess')\n cy.task('stubRequestSuccessResult20')\n cy.task('stubRequestSuccessResult100')\n cy.visit(path)\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Successful Report') && element.textContent.includes('this will succeed')\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Request report' }).click()\n })\n })\n checkA11y()\n cy.findByRole('button', { name: /Request/ }).click()\n checkA11y()\n cy.findByRole('heading', { level: 1, name: /Successful Report/ }).should('be.visible')\n cy.url().then((url) => {\n viewReportUrl = url\n })\n })\n\n beforeEach(() => {\n cy.visit(viewReportUrl)\n })\n\n describe('Enabling download', () => {\n it('should show the enable download button', () => {\n cy.findByLabelText(/Enable download/)\n .should('exist')\n .should('be.visible')\n cy.findByRole('heading', { name: 'To download this report' }).should('not.exist')\n })\n\n it('should show the download disabled message with link to form', () => {\n cy.findByLabelText(/Enable download/).click()\n cy.url().should('have.string', '/report/download-disabled')\n cy.findByRole('heading', { name: 'To download this report' }).should('be.visible')\n cy.findByRole('link', { name: 'Fill out a form' })\n })\n\n it('should go to the request download form', () => {\n cy.findByLabelText(/Enable download/).click()\n cy.findByRole('link', { name: 'Fill out a form' }).click()\n\n cy.url().then((url) => {\n downloadRequestFormPage = url\n })\n\n cy.url().should(\n 'match',\n /\\/embedded\\/platform\\/dpr\\/download-report\\/request-download\\/request-examples\\/request-example-success\\/tableId\\/tblId_[0-9]+\\/form/,\n )\n cy.location().should((location) => {\n expect(location.search).to.match(\n /.*reportUrl=\\/embedded\\/platform\\/dpr\\/view-report\\/async\\/report\\/request-examples\\/request-example-success\\/tblId_[0-9]+\\/report/,\n )\n })\n })\n })\n\n describe('Requesting download', () => {\n it('should prefill the user data in the request form', () => {\n cy.visit(downloadRequestFormPage)\n cy.findByRole('textbox', { name: 'What is your Full name?' }).should('have.value', 'Test User')\n cy.findByRole('textbox', { name: 'What is your Email address?' }).should('have.value', 'test@user.com')\n })\n\n it('should validate the required fields', () => {\n cy.visit(downloadRequestFormPage)\n cy.findByRole('alert').should('not.exist')\n\n cy.findAllByRole('paragraph').contains('Enter your Job title').should('not.exist')\n cy.findAllByRole('paragraph').contains('provide information on how you will use this data').should('not.exist')\n cy.get('#more-detail-error').should('not.be.visible')\n\n cy.findByRole('button', { name: /Submit request/ }).click()\n\n cy.findByRole('alert').should('exist')\n cy.findAllByRole('paragraph').contains('Enter your Job title').should('exist')\n cy.findAllByRole('paragraph').contains('provide information on how you will use this data').should('exist')\n })\n\n it('should submit the download request', () => {\n cy.visit(downloadRequestFormPage)\n cy.findByRole('textbox', { name: 'What is your Job title?' }).type('Software engineer')\n cy.findByRole('textbox', { name: 'Can you provide more detail' }).type('I like this report')\n\n cy.findByRole('button', { name: 'Submit request' }).click()\n cy.findByText(/You have been granted permission/).should('be.visible')\n\n cy.url().as('downloadRequestSubmittedPage')\n\n cy.url().and(\n 'match',\n /dpr\\/download-report\\/request-download\\/request-examples\\/request-example-success\\/tableId\\/tblId_[0-9]+\\/form\\/submitted/,\n )\n cy.findByRole('link', { name: /Return to report to download/ }).click()\n cy.findAllByRole('heading').contains('Successful Report').should('exist')\n cy.findByRole('button', { name: /download/ }).should('be.visible')\n\n cy.task('stubRequestSuccessResult10MissingFirstRow')\n cy.findByRole('button', { name: /download/ }).click()\n cy.task('checkContents10RowExcelValid').should('equal', true)\n })\n\n it('should redirect on trying to download after having the permission to download removed', () => {\n updateRedisState('downloadPermissions', [])\n cy.findByRole('heading', { name: /To download this report/ }).should('not.exist')\n cy.findByRole('button', { name: /download/ }).click()\n cy.findByRole('heading', { name: /To download this report/ }).should('be.visible')\n })\n })\n})\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["import_redisStateTestUtils", "import_cypressUtils", "path", "downloadRequestFormPage", "viewReportUrl", "_", "element", "url", "location"]
|
|
7
7
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { updateRedisState } from 'test-app/routes/integrationTests/redisStateTestUtils'
|
|
2
|
-
import { checkA11y } from '../../../../../cypress-tests/cypressUtils'
|
|
2
|
+
import { checkA11y, executeReportStubs } from '../../../../../cypress-tests/cypressUtils'
|
|
3
3
|
|
|
4
4
|
context('Download report', () => {
|
|
5
5
|
const path = '/embedded/platform/'
|
|
@@ -7,15 +7,9 @@ context('Download report', () => {
|
|
|
7
7
|
let viewReportUrl: string
|
|
8
8
|
|
|
9
9
|
before(() => {
|
|
10
|
-
|
|
11
|
-
cy.task('resetRedis')
|
|
12
|
-
cy.task('stubDefinitions')
|
|
13
|
-
cy.task('stubGetProductCollections')
|
|
10
|
+
executeReportStubs()
|
|
14
11
|
cy.task('stubDefinitionRequestExamplesSuccess')
|
|
15
|
-
cy.task('stubReportsFinishedStatus')
|
|
16
12
|
cy.task('stubRequestSuccessResult20')
|
|
17
|
-
cy.task('stubRequestSuccessReportTablesCount')
|
|
18
|
-
cy.task('stubViewAsyncReportingResults')
|
|
19
13
|
cy.task('stubRequestSuccessResult100')
|
|
20
14
|
cy.visit(path)
|
|
21
15
|
cy.findByLabelText(/Reports catalogue.*/i).within(() => {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var
|
|
1
|
+
var N=Object.create;var m=Object.defineProperty;var O=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var H=Object.getPrototypeOf,K=Object.prototype.hasOwnProperty;var V=(n,t)=>{for(var e in t)m(n,e,{get:t[e],enumerable:!0})},C=(n,t,e,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of x(t))!K.call(n,s)&&s!==e&&m(n,s,{get:()=>t[s],enumerable:!(i=O(t,s))||i.enumerable});return n};var R=(n,t,e)=>(e=n!=null?N(H(n)):{},C(t||!n||!n.__esModule?m(e,"default",{value:n,enumerable:!0}):e,n)),E=n=>C(m({},"__esModule",{value:!0}),n);var W={};V(W,{default:()=>$,downloadReport:()=>b,getKeys:()=>y});module.exports=E(W);var T=require("json-2-csv"),q=require("../../../types/UserReports"),L=R(require("../../../utils/localsHelper")),u=R(require("../../../types/ReportQuery"));const J=(n,t)=>(0,T.json2csv)(n,t),y=(n,t)=>{const e=[],i=[];return n.forEach(s=>{Object.keys(s).forEach(o=>{const a=t.find(r=>r.name===o);a&&!i.includes(o)&&(i.push(o),e.push({field:o,title:a.display}))})}),e},j=(n,t)=>n.map(e=>Object.keys(e).filter(i=>t.includes(i)).reduce((i,s)=>(i[s]=e[s],i),{})),z=(n,t)=>{const{specification:e}=t.variant;if(e){const{fields:i}=e,s=i.filter(o=>o.type==="HTML");s.length&&n.map(o=>(s.forEach(a=>{const{name:r}=a,c=o[r];if(c){const p=/target="_blank">(.*?)<\/a>/g.exec(c);o[r]=p?p[1]:c}}),o))}return n},F=async n=>{const{token:t,services:e,tableId:i,reportId:s,id:o,queryParams:a}=n,r=await e.reportingService.getAsyncCount(t,i),c={...a,pageSize:r.toString()};return e.reportingService.getAsyncReport(t,s,o,i,c)},Q=async n=>{const{token:t,services:e,queryParams:i,definition:s}=n,{variant:o}=s,{resourceName:a,specification:r}=o;let c=[];if(r){const p=new u.default({fields:r.fields,template:r.template,queryParams:i,definitionsPath:i.dataProductDefinitionsPath}),l=await e.reportingService.getCount(a,t,p),f=new u.default({fields:r.fields,template:r.template,queryParams:{...i,pageSize:l.toString()},definitionsPath:i.dataProductDefinitionsPath});c=(await e.reportingService.getListWithWarnings(a,t,f)).data}return c},b=async({req:n,services:t,res:e,redirect:i,loadType:s})=>{const{dprUser:o,token:a}=L.default.getValues(e),{reportId:r,id:c,tableId:p,dataProductDefinitionsPath:l,reportName:f,name:D,cols:v,sortedAsc:S,sortColumn:h}=n.body,{downloadPermissionService:P}=t;if(!(P?await P.downloadEnabled(o.id,r,c):!1))e.redirect(i);else{const g=await t.reportingService.getDefinition(a,r,c,l),w={dataProductDefinitionsPath:l,...S&&{sortedAsc:S},...h&&{sortColumn:h}};let d;s===q.LoadType.SYNC?d=await Q({definition:g,services:t,token:a,queryParams:w}):d=await F({services:t,token:a,reportId:r,id:c,tableId:p,queryParams:w}),v&&(d=j(d,JSON.parse(v))),d=z(d,g);const k=g.variant.specification?.fields||[],A=y(d,k),I=J(d,{keys:A,emptyFieldValue:""});e.setHeader("Content-Type","application/json"),e.setHeader("Content-disposition",`attachment; filename=${f}-${D}-${new Date().toISOString()}.csv`),e.end(I)}};var $={downloadReport:b,getKeys:y};0&&(module.exports={downloadReport,getKeys});
|
|
2
2
|
//# sourceMappingURL=utils.js.map
|