@ministryofjustice/hmpps-digital-prison-reporting-frontend 4.17.3 → 4.17.5
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/assets/app.js.map +1 -1
- package/dpr/components/_async/async-filters-form/sortByTemplate.js +1 -1
- package/dpr/components/_async/async-filters-form/sortByTemplate.js.map +1 -1
- package/dpr/components/_async/async-filters-form/types.d.js +1 -1
- package/dpr/components/_async/async-filters-form/types.d.js.map +1 -1
- package/dpr/components/_async/async-filters-form/utils.js +1 -1
- package/dpr/components/_async/async-filters-form/utils.js.map +2 -2
- package/dpr/components/_async/async-filters-form/utils.test.ts +9 -9
- package/dpr/components/_async/async-filters-form/utils.ts +1 -1
- package/dpr/components/_async/async-filters-form/view.njk +6 -3
- package/dpr/components/_catalogue/catalogue/types.js +1 -1
- package/dpr/components/_catalogue/catalogue/types.js.map +1 -1
- package/dpr/components/_catalogue/catalogue/utils.js +1 -1
- package/dpr/components/_catalogue/catalogue/utils.js.map +2 -2
- package/dpr/components/_catalogue/catalogue/utils.test.ts +6 -3
- package/dpr/components/_catalogue/catalogue/utils.ts +2 -2
- package/dpr/components/_catalogue/catalogue-list/utils.js +1 -1
- package/dpr/components/_catalogue/catalogue-list/utils.js.map +2 -2
- package/dpr/components/_catalogue/catalogue-list/utils.test.ts +1 -0
- package/dpr/components/_catalogue/catalogue-list/utils.ts +5 -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 +3 -3
- package/dpr/components/_charts/chart/heatmap/HeatmapChart.js +1 -1
- package/dpr/components/_charts/chart/heatmap/HeatmapChart.js.map +3 -3
- package/dpr/components/_charts/chart/heatmap/HeatmapChart.ts +1 -13
- package/dpr/components/_charts/chart/heatmap/types.js +1 -1
- package/dpr/components/_charts/chart/heatmap/types.js.map +2 -2
- package/dpr/components/_charts/chart/heatmap/types.ts +1 -1
- package/dpr/components/_charts/utils.js +1 -1
- package/dpr/components/_charts/utils.js.map +3 -3
- package/dpr/components/_charts/utils.test.ts +1 -0
- package/dpr/components/_charts/utils.ts +84 -43
- 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 +1 -0
- package/dpr/components/_dashboards/dashboard-list/utils.ts +16 -11
- package/dpr/components/_dashboards/dashboard-visualisation/DashboardVisualisation.js +1 -1
- package/dpr/components/_dashboards/dashboard-visualisation/DashboardVisualisation.js.map +2 -2
- package/dpr/components/_dashboards/dashboard-visualisation/DashboardVisualisation.ts +1 -1
- package/dpr/components/_dashboards/dashboard-visualisation/types.js +1 -1
- package/dpr/components/_dashboards/dashboard-visualisation/types.js.map +2 -2
- package/dpr/components/_dashboards/dashboard-visualisation/types.ts +8 -8
- 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 +8 -8
- package/dpr/components/_dashboards/scorecard/types.js +1 -1
- package/dpr/components/_dashboards/scorecard/types.js.map +2 -2
- package/dpr/components/_dashboards/scorecard/types.ts +12 -10
- package/dpr/components/_dashboards/scorecard/utils.js +1 -1
- package/dpr/components/_dashboards/scorecard/utils.js.map +1 -1
- package/dpr/components/_dashboards/scorecard/utils.test.ts +1 -0
- package/dpr/components/_filters/filter-input/enum.js +1 -1
- package/dpr/components/_filters/filter-input/enum.js.map +1 -1
- package/dpr/components/_filters/filter-input/filters.js +1 -1
- package/dpr/components/_filters/filter-input/filters.js.map +1 -1
- package/dpr/components/_filters/filter-input/filters.test.ts +1 -0
- package/dpr/components/_filters/filter-input/types.d.js +1 -1
- package/dpr/components/_filters/filter-input/types.d.js.map +1 -1
- package/dpr/components/_filters/filters-selected/utils.js +1 -1
- package/dpr/components/_filters/filters-selected/utils.js.map +3 -3
- package/dpr/components/_filters/filters-selected/utils.test.ts +7 -4
- package/dpr/components/_filters/filters-selected/utils.ts +1 -1
- package/dpr/components/_filters/filtersTypeEnum.js +1 -1
- package/dpr/components/_filters/filtersTypeEnum.js.map +1 -1
- package/dpr/components/_filters/types.d.js +1 -1
- package/dpr/components/_filters/types.d.js.map +2 -2
- package/dpr/components/_filters/types.d.ts +5 -5
- package/dpr/components/_filters/utils.js +1 -1
- package/dpr/components/_filters/utils.js.map +2 -2
- package/dpr/components/_filters/utils.test.ts +54 -49
- package/dpr/components/_filters/utils.ts +16 -20
- package/dpr/components/_inputs/date-input/utils.js +1 -1
- package/dpr/components/_inputs/date-input/utils.js.map +1 -1
- package/dpr/components/_inputs/date-input/utils.test.ts +1 -0
- package/dpr/components/_inputs/date-range/clientClass.mjs +2 -2
- package/dpr/components/_inputs/date-range/types.js +1 -1
- package/dpr/components/_inputs/date-range/types.js.map +2 -2
- package/dpr/components/_inputs/date-range/types.ts +2 -2
- package/dpr/components/_inputs/date-range/utils.js +1 -1
- package/dpr/components/_inputs/date-range/utils.js.map +2 -2
- package/dpr/components/_inputs/date-range/utils.test.ts +5 -7
- package/dpr/components/_inputs/date-range/utils.ts +4 -4
- package/dpr/components/_inputs/date-range/view.njk +1 -0
- package/dpr/components/_inputs/granular-date-range/types.js +1 -1
- package/dpr/components/_inputs/granular-date-range/types.js.map +1 -1
- package/dpr/components/_inputs/granular-date-range/utils.js +1 -1
- package/dpr/components/_inputs/granular-date-range/utils.js.map +1 -1
- package/dpr/components/_inputs/granular-date-range/utils.test.ts +1 -0
- package/dpr/components/_inputs/multi-select/utils.js +1 -1
- package/dpr/components/_inputs/multi-select/utils.js.map +3 -3
- package/dpr/components/_inputs/multi-select/utils.ts +1 -1
- package/dpr/components/_inputs/multi-select/utilt.test.ts +29 -14
- package/dpr/components/_inputs/start-end-date/utils.js +1 -1
- package/dpr/components/_inputs/start-end-date/utils.js.map +1 -1
- package/dpr/components/_inputs/start-end-date/utils.test.ts +1 -0
- package/dpr/components/_reports/report-actions/actionsTemplate.js +1 -1
- package/dpr/components/_reports/report-actions/actionsTemplate.js.map +1 -1
- package/dpr/components/_reports/report-actions/types.d.js +1 -1
- package/dpr/components/_reports/report-actions/types.d.js.map +2 -2
- package/dpr/components/_reports/report-actions/types.d.ts +1 -1
- package/dpr/components/_reports/report-actions/utils.js +1 -1
- package/dpr/components/_reports/report-actions/utils.js.map +1 -1
- package/dpr/components/_reports/report-actions/utils.test.ts +8 -4
- package/dpr/components/_reports/report-columns-form/types.d.js +1 -1
- package/dpr/components/_reports/report-columns-form/types.d.js.map +1 -1
- package/dpr/components/_reports/report-columns-form/utils.js +1 -1
- package/dpr/components/_reports/report-columns-form/utils.js.map +2 -2
- package/dpr/components/_reports/report-columns-form/utils.ts +1 -1
- package/dpr/components/_reports/report-data-table/types.d.js +1 -1
- package/dpr/components/_reports/report-data-table/types.d.js.map +1 -1
- package/dpr/components/_reports/report-data-table/utils.js +1 -1
- package/dpr/components/_reports/report-data-table/utils.js.map +3 -3
- package/dpr/components/_reports/report-data-table/utils.test.ts +15 -8
- package/dpr/components/_reports/report-data-table/utils.ts +20 -8
- package/dpr/components/_reports/report-pagination/types.d.js +1 -1
- package/dpr/components/_reports/report-pagination/types.d.js.map +2 -2
- package/dpr/components/_reports/report-pagination/types.d.ts +2 -2
- package/dpr/components/_reports/report-pagination/utils.js +1 -1
- package/dpr/components/_reports/report-pagination/utils.js.map +1 -1
- package/dpr/components/_reports/report-pagination/utils.test.ts +1 -0
- package/dpr/components/_reports/report-totals/utils.js +1 -1
- package/dpr/components/_reports/report-totals/utils.js.map +1 -1
- package/dpr/components/card-group/utils.js +1 -1
- package/dpr/components/card-group/utils.js.map +1 -1
- package/dpr/components/card-group/utils.test.ts +7 -0
- package/dpr/components/report-list/defaultTokenProvider.js +1 -1
- package/dpr/components/report-list/defaultTokenProvider.js.map +3 -3
- package/dpr/components/report-list/defaultTokenProvider.ts +3 -3
- package/dpr/components/report-list/types.d.js +1 -1
- package/dpr/components/report-list/types.d.js.map +1 -1
- package/dpr/components/report-list/utils.js +1 -1
- package/dpr/components/report-list/utils.js.map +2 -2
- package/dpr/components/report-list/utils.test.ts +6 -4
- package/dpr/components/report-list/utils.ts +5 -5
- package/dpr/components/show-more/utils.js +1 -1
- package/dpr/components/show-more/utils.js.map +1 -1
- package/dpr/components/user-reports/bookmarks/utils.js +1 -1
- package/dpr/components/user-reports/bookmarks/utils.js.map +3 -3
- package/dpr/components/user-reports/bookmarks/utils.test.ts +14 -11
- package/dpr/components/user-reports/bookmarks/utils.ts +26 -31
- package/dpr/components/user-reports/requested/utils.js +1 -1
- package/dpr/components/user-reports/requested/utils.js.map +3 -3
- package/dpr/components/user-reports/requested/utils.test.ts +4 -3
- package/dpr/components/user-reports/requested/utils.ts +4 -3
- package/dpr/components/user-reports/types.d.js +1 -1
- package/dpr/components/user-reports/types.d.js.map +2 -2
- package/dpr/components/user-reports/types.d.ts +1 -1
- package/dpr/components/user-reports/utils.js +1 -1
- package/dpr/components/user-reports/utils.js.map +3 -3
- package/dpr/components/user-reports/utils.test.ts +48 -47
- package/dpr/components/user-reports/utils.ts +51 -57
- package/dpr/components/user-reports/viewed/utils.js +1 -1
- package/dpr/components/user-reports/viewed/utils.js.map +2 -2
- package/dpr/components/user-reports/viewed/utils.ts +5 -4
- package/dpr/data/agentConfig.js +1 -1
- package/dpr/data/agentConfig.js.map +1 -1
- package/dpr/data/dashboardClient.js +1 -1
- package/dpr/data/dashboardClient.js.map +2 -2
- package/dpr/data/dashboardClient.ts +2 -2
- package/dpr/data/dprReportingClient.js +1 -1
- package/dpr/data/dprReportingClient.js.map +3 -3
- package/dpr/data/dprReportingClient.ts +3 -3
- package/dpr/data/missingReportClient.js +2 -0
- package/dpr/data/missingReportClient.js.map +7 -0
- package/dpr/{services/missingReport → data}/missingReportClient.ts +4 -4
- package/dpr/data/productCollectionClient.js +2 -0
- package/dpr/data/productCollectionClient.js.map +7 -0
- package/dpr/data/productCollectionClient.ts +28 -0
- package/dpr/data/reportDataStore.js +1 -1
- package/dpr/data/reportDataStore.js.map +1 -1
- package/dpr/data/reportingClient.js +1 -1
- package/dpr/data/reportingClient.js.map +3 -3
- package/dpr/data/reportingClient.ts +7 -9
- package/dpr/data/restClient.js +1 -1
- package/dpr/data/restClient.js.map +2 -2
- package/dpr/data/restClient.ts +5 -5
- package/dpr/data/types.d.js +1 -1
- package/dpr/data/types.d.js.map +2 -2
- package/dpr/data/types.d.ts +1 -1
- package/dpr/middleware/reportAuthoriser.js +1 -1
- package/dpr/middleware/reportAuthoriser.js.map +2 -2
- package/dpr/middleware/reportAuthoriser.ts +2 -2
- package/dpr/middleware/setUpDprResources.js +1 -1
- package/dpr/middleware/setUpDprResources.js.map +2 -2
- package/dpr/middleware/setUpDprResources.test.ts +59 -20
- package/dpr/middleware/setUpDprResources.ts +30 -29
- package/dpr/middleware/setUpNestedRoute.js +1 -1
- package/dpr/middleware/setUpNestedRoute.js.map +2 -2
- package/dpr/middleware/setUpNestedRoute.ts +1 -1
- package/dpr/routes/index.js +1 -1
- package/dpr/routes/index.js.map +2 -2
- package/dpr/routes/index.ts +1 -2
- 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 +7 -6
- package/dpr/routes/journeys/download-report/request-download/form/controller.js +1 -1
- package/dpr/routes/journeys/download-report/request-download/form/controller.js.map +3 -3
- package/dpr/routes/journeys/download-report/request-download/form/controller.ts +1 -1
- package/dpr/routes/journeys/download-report/request-download/form/routes.js +1 -1
- package/dpr/routes/journeys/download-report/request-download/form/routes.js.map +1 -1
- package/dpr/routes/journeys/download-report/request-download/form/submitted/controller.js +1 -1
- package/dpr/routes/journeys/download-report/request-download/form/submitted/controller.js.map +3 -3
- package/dpr/routes/journeys/download-report/request-download/form/submitted/controller.ts +1 -1
- package/dpr/routes/journeys/download-report/request-download/form/submitted/routes.js +1 -1
- package/dpr/routes/journeys/download-report/request-download/form/submitted/routes.js.map +1 -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 +1 -1
- 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 +1 -1
- package/dpr/routes/journeys/download-report/request-download/routes.js +1 -1
- package/dpr/routes/journeys/download-report/request-download/routes.js.map +1 -1
- package/dpr/routes/journeys/download-report/request-download/service.js +1 -1
- package/dpr/routes/journeys/download-report/request-download/service.js.map +3 -3
- package/dpr/routes/journeys/download-report/request-download/service.ts +20 -8
- package/dpr/routes/journeys/download-report/routes.js +1 -1
- package/dpr/routes/journeys/download-report/routes.js.map +3 -3
- package/dpr/routes/journeys/download-report/routes.ts +1 -4
- 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 +4 -1
- package/dpr/routes/journeys/download-report/utils.js +1 -1
- package/dpr/routes/journeys/download-report/utils.js.map +2 -2
- package/dpr/routes/journeys/download-report/utils.ts +2 -4
- package/dpr/routes/journeys/my-reports/bookmarks/controller.js +1 -1
- package/dpr/routes/journeys/my-reports/bookmarks/controller.js.map +1 -1
- package/dpr/routes/journeys/my-reports/bookmarks/list/controller.js +1 -1
- package/dpr/routes/journeys/my-reports/bookmarks/list/controller.js.map +3 -3
- package/dpr/routes/journeys/my-reports/bookmarks/list/controller.ts +2 -2
- package/dpr/routes/journeys/my-reports/bookmarks/list/routes.js +1 -1
- package/dpr/routes/journeys/my-reports/bookmarks/list/routes.js.map +1 -1
- 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 -2
- package/dpr/routes/journeys/my-reports/bookmarks/routes.js +1 -1
- package/dpr/routes/journeys/my-reports/bookmarks/routes.js.map +1 -1
- package/dpr/routes/journeys/my-reports/bookmarks/service.js +3 -3
- package/dpr/routes/journeys/my-reports/bookmarks/service.js.map +3 -3
- package/dpr/routes/journeys/my-reports/bookmarks/service.ts +31 -18
- package/dpr/routes/journeys/my-reports/bookmarks/tests.cy.js +1 -1
- package/dpr/routes/journeys/my-reports/bookmarks/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/my-reports/bookmarks/tests.cy.ts +26 -26
- 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 +10 -11
- package/dpr/routes/journeys/my-reports/recently-viewed/controller.js +1 -1
- package/dpr/routes/journeys/my-reports/recently-viewed/controller.js.map +1 -1
- package/dpr/routes/journeys/my-reports/recently-viewed/list/controller.js +1 -1
- package/dpr/routes/journeys/my-reports/recently-viewed/list/controller.js.map +3 -3
- package/dpr/routes/journeys/my-reports/recently-viewed/list/controller.ts +1 -1
- package/dpr/routes/journeys/my-reports/recently-viewed/list/routes.js +1 -1
- package/dpr/routes/journeys/my-reports/recently-viewed/list/routes.js.map +1 -1
- 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 +2 -2
- package/dpr/routes/journeys/my-reports/recently-viewed/list/tests.cy.ts +7 -4
- package/dpr/routes/journeys/my-reports/recently-viewed/routes.js +1 -1
- package/dpr/routes/journeys/my-reports/recently-viewed/routes.js.map +1 -1
- package/dpr/routes/journeys/my-reports/recently-viewed/service.js +1 -1
- package/dpr/routes/journeys/my-reports/recently-viewed/service.js.map +3 -3
- package/dpr/routes/journeys/my-reports/recently-viewed/service.ts +0 -2
- package/dpr/routes/journeys/my-reports/requested-reports/controller.js +1 -1
- package/dpr/routes/journeys/my-reports/requested-reports/controller.js.map +1 -1
- package/dpr/routes/journeys/my-reports/requested-reports/list/controller.js +1 -1
- package/dpr/routes/journeys/my-reports/requested-reports/list/controller.js.map +3 -3
- package/dpr/routes/journeys/my-reports/requested-reports/list/controller.ts +1 -1
- package/dpr/routes/journeys/my-reports/requested-reports/list/routes.js +1 -1
- package/dpr/routes/journeys/my-reports/requested-reports/list/routes.js.map +1 -1
- 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 +1 -1
- package/dpr/routes/journeys/my-reports/requested-reports/routes.js +1 -1
- package/dpr/routes/journeys/my-reports/requested-reports/routes.js.map +1 -1
- package/dpr/routes/journeys/my-reports/requested-reports/service.js +1 -1
- package/dpr/routes/journeys/my-reports/requested-reports/service.js.map +3 -3
- package/dpr/routes/journeys/my-reports/requested-reports/service.ts +25 -17
- package/dpr/routes/journeys/my-reports/routes.js +1 -1
- package/dpr/routes/journeys/my-reports/routes.js.map +3 -3
- package/dpr/routes/journeys/my-reports/routes.ts +0 -3
- package/dpr/routes/journeys/product-collection/routes.js +1 -1
- package/dpr/routes/journeys/product-collection/routes.js.map +1 -1
- package/dpr/routes/journeys/product-collection/selected/controller.js +1 -1
- package/dpr/routes/journeys/product-collection/selected/controller.js.map +1 -1
- package/dpr/routes/journeys/product-collection/selected/routes.js +1 -1
- package/dpr/routes/journeys/product-collection/selected/routes.js.map +1 -1
- package/dpr/routes/journeys/product-collection/selected/tests.cy.js +1 -1
- package/dpr/routes/journeys/product-collection/selected/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/product-collection/selected/tests.cy.ts +6 -4
- package/dpr/routes/journeys/product-collection/selected/validation.js +1 -1
- package/dpr/routes/journeys/product-collection/selected/validation.js.map +1 -1
- package/dpr/routes/journeys/request-missing-report/form/controller.js +1 -1
- package/dpr/routes/journeys/request-missing-report/form/controller.js.map +3 -3
- package/dpr/routes/journeys/request-missing-report/form/controller.ts +21 -19
- package/dpr/routes/journeys/request-missing-report/form/routes.js +1 -1
- package/dpr/routes/journeys/request-missing-report/form/routes.js.map +1 -1
- 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 +1 -1
- package/dpr/routes/journeys/request-missing-report/form/validation.js +1 -1
- package/dpr/routes/journeys/request-missing-report/form/validation.js.map +1 -1
- package/dpr/routes/journeys/request-missing-report/routes.js +1 -1
- package/dpr/routes/journeys/request-missing-report/routes.js.map +1 -1
- package/dpr/routes/journeys/request-missing-report/submitted/controller.js +1 -1
- package/dpr/routes/journeys/request-missing-report/submitted/controller.js.map +1 -1
- package/dpr/routes/journeys/request-missing-report/submitted/routes.js +1 -1
- package/dpr/routes/journeys/request-missing-report/submitted/routes.js.map +1 -1
- package/dpr/routes/journeys/request-missing-report/submitted/tests.cy.js +1 -1
- package/dpr/routes/journeys/request-missing-report/submitted/tests.cy.js.map +1 -1
- 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 +1 -1
- package/dpr/routes/journeys/request-report/controller.js +1 -1
- package/dpr/routes/journeys/request-report/controller.js.map +3 -3
- package/dpr/routes/journeys/request-report/controller.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 +7 -8
- package/dpr/routes/journeys/request-report/filters/routes.js +1 -1
- package/dpr/routes/journeys/request-report/filters/routes.js.map +1 -1
- package/dpr/routes/journeys/request-report/filters/tests.cy.js +1 -1
- package/dpr/routes/journeys/request-report/filters/tests.cy.js.map +1 -1
- package/dpr/routes/journeys/request-report/filters/utils.js +1 -1
- package/dpr/routes/journeys/request-report/filters/utils.js.map +3 -3
- package/dpr/routes/journeys/request-report/filters/utils.ts +38 -23
- package/dpr/routes/journeys/request-report/filters/view.njk +2 -1
- package/dpr/routes/journeys/request-report/routes.js +1 -1
- package/dpr/routes/journeys/request-report/routes.js.map +2 -2
- package/dpr/routes/journeys/request-report/routes.ts +2 -2
- package/dpr/routes/journeys/request-report/status/controller.js +1 -1
- package/dpr/routes/journeys/request-report/status/controller.js.map +3 -3
- package/dpr/routes/journeys/request-report/status/controller.ts +4 -4
- package/dpr/routes/journeys/request-report/status/routes.js +1 -1
- package/dpr/routes/journeys/request-report/status/routes.js.map +1 -1
- 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 +9 -4
- package/dpr/routes/journeys/request-report/status/utils.js +1 -1
- package/dpr/routes/journeys/request-report/status/utils.js.map +3 -3
- package/dpr/routes/journeys/request-report/status/utils.ts +10 -13
- package/dpr/routes/journeys/request-report/tests.cy.js +1 -1
- package/dpr/routes/journeys/request-report/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/request-report/tests.cy.ts +14 -11
- package/dpr/routes/journeys/routes.js +1 -1
- package/dpr/routes/journeys/routes.js.map +1 -1
- package/dpr/routes/journeys/view-report/async/controller.js +1 -1
- package/dpr/routes/journeys/view-report/async/controller.js.map +3 -3
- package/dpr/routes/journeys/view-report/async/controller.ts +4 -4
- package/dpr/routes/journeys/view-report/async/dashboard/controller.js +1 -1
- package/dpr/routes/journeys/view-report/async/dashboard/controller.js.map +3 -3
- package/dpr/routes/journeys/view-report/async/dashboard/controller.ts +4 -4
- package/dpr/routes/journeys/view-report/async/dashboard/routes.js +1 -1
- package/dpr/routes/journeys/view-report/async/dashboard/routes.js.map +1 -1
- 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 -2
- 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 +6 -8
- 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 +5 -5
- package/dpr/routes/journeys/view-report/async/report/routes.js +1 -1
- package/dpr/routes/journeys/view-report/async/report/routes.js.map +1 -1
- 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 +9 -7
- package/dpr/routes/journeys/view-report/async/report/types.js +1 -1
- package/dpr/routes/journeys/view-report/async/report/types.js.map +2 -2
- package/dpr/routes/journeys/view-report/async/report/types.ts +8 -8
- package/dpr/routes/journeys/view-report/async/report/utils.js +1 -1
- package/dpr/routes/journeys/view-report/async/report/utils.js.map +2 -2
- package/dpr/routes/journeys/view-report/async/report/utils.ts +16 -18
- package/dpr/routes/journeys/view-report/async/routes.js +1 -1
- package/dpr/routes/journeys/view-report/async/routes.js.map +1 -1
- package/dpr/routes/journeys/view-report/controller.js +1 -1
- package/dpr/routes/journeys/view-report/controller.js.map +3 -3
- package/dpr/routes/journeys/view-report/controller.ts +1 -1
- package/dpr/routes/journeys/view-report/routes.js +1 -1
- package/dpr/routes/journeys/view-report/routes.js.map +2 -2
- package/dpr/routes/journeys/view-report/routes.ts +6 -3
- package/dpr/routes/journeys/view-report/sync/load-report/controller.js +1 -1
- package/dpr/routes/journeys/view-report/sync/load-report/controller.js.map +2 -2
- package/dpr/routes/journeys/view-report/sync/load-report/controller.ts +1 -1
- package/dpr/routes/journeys/view-report/sync/load-report/routes.js +1 -1
- package/dpr/routes/journeys/view-report/sync/load-report/routes.js.map +1 -1
- package/dpr/routes/journeys/view-report/sync/report/controller.js +1 -1
- package/dpr/routes/journeys/view-report/sync/report/controller.js.map +3 -3
- package/dpr/routes/journeys/view-report/sync/report/controller.ts +6 -6
- package/dpr/routes/journeys/view-report/sync/report/routes.js +1 -1
- package/dpr/routes/journeys/view-report/sync/report/routes.js.map +1 -1
- package/dpr/routes/journeys/view-report/sync/report/utils.js +1 -1
- package/dpr/routes/journeys/view-report/sync/report/utils.js.map +3 -3
- package/dpr/routes/journeys/view-report/sync/report/utils.ts +29 -19
- package/dpr/routes/journeys/view-report/sync/routes.js +1 -1
- package/dpr/routes/journeys/view-report/sync/routes.js.map +1 -1
- package/dpr/routes/journeys/view-report/sync/tests.cy.js +1 -1
- package/dpr/routes/journeys/view-report/sync/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/view-report/sync/tests.cy.ts +1 -1
- package/dpr/routes/journeys/view-report/utils.js +1 -1
- package/dpr/routes/journeys/view-report/utils.js.map +3 -3
- package/dpr/routes/journeys/view-report/utils.ts +22 -12
- package/dpr/services/dashboardService.js +1 -1
- package/dpr/services/dashboardService.js.map +3 -3
- package/dpr/services/dashboardService.ts +1 -3
- package/dpr/services/defaultFilterValuesService.js +1 -1
- package/dpr/services/defaultFilterValuesService.js.map +3 -3
- package/dpr/services/defaultFilterValuesService.ts +34 -15
- package/dpr/services/index.js +1 -1
- package/dpr/services/index.js.map +1 -1
- package/dpr/services/missingReport/missingReportService.js +2 -0
- package/dpr/services/missingReport/missingReportService.js.map +7 -0
- package/dpr/services/missingReport/missingReportService.ts +26 -0
- package/dpr/services/productCollection/productCollectionService.js +1 -1
- package/dpr/services/productCollection/productCollectionService.js.map +3 -3
- package/dpr/services/productCollection/productCollectionService.ts +19 -14
- package/dpr/services/productCollection/productCollectionStoreService.js +1 -1
- package/dpr/services/productCollection/productCollectionStoreService.js.map +3 -3
- package/dpr/services/productCollection/productCollectionStoreService.ts +9 -3
- package/dpr/services/reportStoreService.js +1 -1
- package/dpr/services/reportStoreService.js.map +2 -2
- package/dpr/services/reportStoreService.ts +1 -1
- package/dpr/services/reportingService.js +1 -1
- package/dpr/services/reportingService.js.map +3 -3
- package/dpr/services/reportingService.ts +1 -3
- package/dpr/setUpNunjucksFilters.js +1 -1
- package/dpr/setUpNunjucksFilters.js.map +1 -1
- package/dpr/types/AsyncReportUtils.js +1 -1
- package/dpr/types/AsyncReportUtils.js.map +2 -2
- package/dpr/types/AsyncReportUtils.ts +2 -1
- package/dpr/types/Bookmark.js +1 -1
- package/dpr/types/Bookmark.js.map +2 -2
- package/dpr/types/Bookmark.ts +9 -3
- package/dpr/types/Charts.js +1 -1
- package/dpr/types/Charts.js.map +1 -1
- package/dpr/types/Download.js +1 -1
- package/dpr/types/Download.js.map +1 -1
- package/dpr/types/DprConfig.js +1 -1
- package/dpr/types/DprConfig.js.map +2 -2
- package/dpr/types/DprConfig.ts +8 -0
- package/dpr/types/DprUser.js +1 -1
- package/dpr/types/DprUser.js.map +2 -2
- package/dpr/types/DprUser.ts +2 -2
- package/dpr/types/EmbeddedReportUtils.js +1 -1
- package/dpr/types/EmbeddedReportUtils.js.map +1 -1
- package/dpr/types/ExecutionData.d.js +1 -1
- package/dpr/types/ExecutionData.d.js.map +2 -2
- package/dpr/types/ExecutionData.d.ts +2 -2
- package/dpr/types/Metrics.js +1 -1
- package/dpr/types/Metrics.js.map +2 -2
- package/dpr/types/Metrics.ts +1 -1
- package/dpr/types/ReportQuery.js +1 -1
- package/dpr/types/ReportQuery.js.map +2 -2
- package/dpr/types/ReportQuery.ts +15 -11
- package/dpr/types/ReportStore.js +1 -1
- package/dpr/types/ReportStore.js.map +1 -1
- package/dpr/types/Services.d.js +1 -1
- package/dpr/types/Services.d.js.map +2 -2
- package/dpr/types/Services.d.ts +8 -8
- package/dpr/types/Templates.d.js +1 -1
- package/dpr/types/Templates.d.js.map +1 -1
- package/dpr/types/UserReports.js +1 -1
- package/dpr/types/UserReports.js.map +2 -2
- package/dpr/types/UserReports.ts +29 -15
- package/dpr/types/api.d.js +1 -1
- package/dpr/types/api.d.js.map +1 -1
- package/dpr/types/index.d.js +1 -1
- package/dpr/types/index.d.js.map +2 -2
- package/dpr/types/index.d.ts +1 -1
- package/dpr/utils/CollatedSummaryBuilder/CollatedSummaryBuilder.js +1 -1
- package/dpr/utils/CollatedSummaryBuilder/CollatedSummaryBuilder.js.map +1 -1
- package/dpr/utils/CollatedSummaryBuilder/CollatedSummaryBuilder.test.ts +2 -0
- package/dpr/utils/CreateDprServices.js +2 -0
- package/dpr/utils/CreateDprServices.js.map +7 -0
- package/dpr/utils/CreateDprServices.ts +73 -0
- package/dpr/utils/DataTableBuilder/DataTableBuilder.js +1 -1
- package/dpr/utils/DataTableBuilder/DataTableBuilder.js.map +1 -1
- package/dpr/utils/DataTableBuilder/DataTableBuilder.test.ts +10 -0
- package/dpr/utils/DataTableBuilder/types.d.js +1 -1
- package/dpr/utils/DataTableBuilder/types.d.js.map +2 -2
- package/dpr/utils/DataTableBuilder/types.d.ts +3 -3
- package/dpr/utils/DateMapper/DateMapper.js +1 -1
- package/dpr/utils/DateMapper/DateMapper.js.map +2 -2
- package/dpr/utils/DateMapper/DateMapper.test.ts +22 -9
- package/dpr/utils/DateMapper/DateMapper.ts +9 -11
- package/dpr/utils/DateMapper/types.d.js +1 -1
- package/dpr/utils/DateMapper/types.d.js.map +1 -1
- package/dpr/utils/ErrorHandler.js +2 -0
- package/dpr/utils/ErrorHandler.js.map +7 -0
- package/dpr/utils/ErrorHandler.ts +85 -0
- package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.js +1 -1
- package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.js.map +2 -2
- package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.test.ts +13 -2
- package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.ts +3 -3
- package/dpr/utils/ParentChildDataTableBuilder/types.d.js +1 -1
- package/dpr/utils/ParentChildDataTableBuilder/types.d.js.map +1 -1
- package/dpr/utils/Personalisation/personalisationUtils.js +1 -1
- package/dpr/utils/Personalisation/personalisationUtils.js.map +3 -3
- package/dpr/utils/Personalisation/personalisationUtils.ts +6 -2
- package/dpr/utils/Personalisation/types.d.js +1 -1
- package/dpr/utils/Personalisation/types.d.js.map +1 -1
- package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.js +1 -1
- package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.js.map +2 -2
- package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.test.ts +5 -0
- package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.ts +1 -1
- package/dpr/utils/SectionedDataTableBuilder/types.d.js +1 -1
- package/dpr/utils/SectionedDataTableBuilder/types.d.js.map +1 -1
- package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.js +1 -1
- package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.js.map +2 -2
- package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.test.ts +7 -4
- package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.ts +3 -3
- package/dpr/utils/SummaryDataTableBuilder/SummaryDataTableBuilder.js +1 -1
- package/dpr/utils/SummaryDataTableBuilder/SummaryDataTableBuilder.js.map +1 -1
- package/dpr/utils/SummaryDataTableBuilder/SummaryDataTableBuilder.test.ts +1 -0
- package/dpr/utils/UserStoreItemBuilder.js +1 -1
- package/dpr/utils/UserStoreItemBuilder.js.map +2 -2
- package/dpr/utils/UserStoreItemBuilder.ts +19 -32
- package/dpr/utils/arrayUtils.js +1 -1
- package/dpr/utils/arrayUtils.js.map +1 -1
- package/dpr/utils/datasetHelper.js +1 -1
- package/dpr/utils/datasetHelper.js.map +2 -2
- package/dpr/utils/datasetHelper.test.ts +21 -33
- package/dpr/utils/datasetHelper.ts +12 -17
- package/dpr/utils/definitionUtils.js +1 -1
- package/dpr/utils/definitionUtils.js.map +3 -3
- package/dpr/utils/definitionUtils.ts +14 -3
- package/dpr/utils/index.js +1 -1
- package/dpr/utils/index.js.map +1 -1
- package/dpr/utils/indexedAccesHelper.js +2 -0
- package/dpr/utils/indexedAccesHelper.js.map +7 -0
- package/dpr/utils/indexedAccesHelper.ts +24 -0
- package/dpr/utils/localsHelper.js +1 -1
- package/dpr/utils/localsHelper.js.map +2 -2
- package/dpr/utils/localsHelper.ts +8 -8
- package/dpr/utils/logger.js +1 -1
- package/dpr/utils/logger.js.map +2 -2
- package/dpr/utils/logger.ts +1 -1
- package/dpr/utils/reportListsHelper.js +1 -1
- package/dpr/utils/reportListsHelper.js.map +1 -1
- package/dpr/utils/reportStoreHelper.js +1 -1
- package/dpr/utils/reportStoreHelper.js.map +1 -1
- package/dpr/utils/reportStoreHelper.test.ts +3 -2
- package/dpr/utils/requestStatusHelper.js +1 -1
- package/dpr/utils/requestStatusHelper.js.map +3 -3
- package/dpr/utils/requestStatusHelper.ts +29 -42
- package/dpr/utils/sanitisedError.js +1 -1
- package/dpr/utils/sanitisedError.js.map +2 -2
- package/dpr/utils/sanitisedError.ts +1 -1
- package/dpr/utils/urlHelper.js +1 -1
- package/dpr/utils/urlHelper.js.map +2 -2
- package/dpr/utils/urlHelper.ts +4 -4
- package/dpr/validation/validate.js +1 -1
- package/dpr/validation/validate.js.map +2 -2
- package/dpr/validation/validate.ts +2 -2
- package/package.json +4 -2
- package/dpr/components/error-summary/utils.js +0 -2
- package/dpr/components/error-summary/utils.js.map +0 -7
- package/dpr/components/error-summary/utils.test.ts +0 -54
- package/dpr/components/error-summary/utils.ts +0 -65
- package/dpr/services/missingReport/missingReportClient.js +0 -2
- package/dpr/services/missingReport/missingReportClient.js.map +0 -7
- package/dpr/utils/ReportStoreServiceUtils.js +0 -2
- package/dpr/utils/ReportStoreServiceUtils.js.map +0 -7
- package/dpr/utils/ReportStoreServiceUtils.ts +0 -140
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var $=Object.create;var g=Object.defineProperty;var j=Object.getOwnPropertyDescriptor;var J=Object.getOwnPropertyNames;var L=Object.getPrototypeOf,
|
|
1
|
+
"use strict";var $=Object.create;var g=Object.defineProperty;var j=Object.getOwnPropertyDescriptor;var J=Object.getOwnPropertyNames;var L=Object.getPrototypeOf,z=Object.prototype.hasOwnProperty;var G=(e,t)=>{for(var i in t)g(e,i,{get:t[i],enumerable:!0})},T=(e,t,i,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of J(t))!z.call(e,r)&&r!==i&&g(e,r,{get:()=>t[r],enumerable:!(s=j(t,r))||s.enumerable});return e};var h=(e,t,i)=>(i=e!=null?$(L(e)):{},T(t||!e||!e.__esModule?g(i,"default",{value:e,enumerable:!0}):i,e)),K=e=>T(g({},"__esModule",{value:!0}),e);var ie={};G(ie,{cancelRequest:()=>N,default:()=>te,getDefintionByType:()=>Q,getFiltersFromReqBody:()=>H,renderRequest:()=>k,request:()=>B,updateStore:()=>O});module.exports=K(ie);var x=h(require("../../../../components/_async/async-filters-form/utils")),D=h(require("../../../../utils/localsHelper")),U=h(require("../../../../components/_filters/utils")),q=require("../../../../utils/reportStoreHelper"),E=h(require("../../../../utils/UserStoreItemBuilder")),f=require("../../../../types/UserReports"),P=h(require("../../../../utils/Personalisation/personalisationUtils")),C=require("../../../../components/_filters/filtersTypeEnum");const O=async({req:e,res:t,services:i,queryData:s,executionData:r,childExecutionData:o})=>{const{search:l,id:c,type:a}=e.body,{dprUser:n,definitionsPath:d,dpdPathFromQuery:u}=D.default.getValues(t);await(0,q.removeDuplicates)({storeService:i.requestedReportService,userId:n.id,id:c,search:l}),await(0,q.removeDuplicates)({storeService:i.recentlyViewedService,userId:n.id,id:c,search:l});const p=e.body,R={type:p.type,reportId:p.reportId,reportName:p.reportName,description:p.description,id:p.id,name:p.name};let m;switch(a){case f.ReportType.REPORT:m=new E.default(R,p).addExecutionData(r).addChildExecutionData(o).addFilters(s?.filterData).addSortData(s?.sortData).addDefinitionsPath(d,u).addRequestUrls(e).addQuery(s).addStatus(f.RequestStatus.SUBMITTED).addTimestamp().build();break;case f.ReportType.DASHBOARD:{m=new E.default(R,p).addExecutionData(r).addChildExecutionData(o).addFilters(s?.filterData).addDefinitionsPath(d,u).addRequestUrls(e).addQuery(s).addStatus(f.RequestStatus.SUBMITTED).addTimestamp().addMetrics(JSON.parse(e.body.sections)).build();break}default:break}m&&await i.requestedReportService.addReport(n.id,m)};async function W(e,t,i,s,r,o){return Promise.all(e.map(l=>t.requestAsyncReport(i,s,l.id,{...r&&{queryData:r.query},...o&&{dataProductDefinitionsPath:o}}).then(c=>{const{executionId:a,tableId:n}=c;if(!a||!n)throw new Error("requestChildReports: No execution of tableId in response");return{executionId:a,tableId:n,variantId:l.id}})))}const X=async({req:e,res:t,token:i,dashboardService:s,reportingService:r})=>{const{definitionsPath:o,dpdPathFromQuery:l}=D.default.getValues(t),{reportId:c,id:a,type:n}=e.body;let d,u,p,R,m,y=[];n===f.ReportType.REPORT&&(m=await r.getDefinition(i,c,a,o),d=m?.variant.specification?.fields||[],u=x.default.setQueryFromFilters(e,d),{executionId:p,tableId:R}=await r.requestAsyncReport(i,c,a,{...u.query,dataProductDefinitionsPath:o}),y=m.variant.childVariants??[]),n===f.ReportType.DASHBOARD&&(m=await s.getDefinition(i,c,a,o),d=m?.filterFields||[],u=x.default.setQueryFromFilters(e,d),{executionId:p,tableId:R}=await s.requestAsyncDashboard(i,c,a,{...u.query,dataProductDefinitionsPath:o}));const S=await W(y,r,i,c,u,o);return{executionData:{executionId:p,tableId:R,...l&&{dataProductDefinitionsPath:o}},childExecutionData:S,queryData:u}},Y=async({token:e,reportId:t,definitionPath:i,services:s,definition:r})=>{const c=(await s.reportingService.getDefinitions(e,i)).find(p=>p.id===t)?.name,{name:a,description:n,sections:d,filterFields:u}=r;return{reportName:c,name:a,description:n,sections:d||[],fields:u||[]}},Z=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,i,s)=>{const{token:r,definitionsPath:o}=D.default.getValues(t),{reportId:l,id:c,variantId:a,type:n}=e.params;return await(n===f.ReportType.REPORT?s.reportingService:s.dashboardService).getDefinition(r,l,a||c,o)},ee=async(e,t,i,s,r,o)=>{const{reportId:l,id:c}=e.params;let a=await x.default.renderFilters(i,s);a.filters=P.default.setUserContextDefaults(t,a.filters);let n;return t.locals.saveDefaultsEnabled&&(n=await r.defaultFilterValuesService.get(o,l,c,C.FiltersType.REQUEST)),n&&(a=P.default.setFilterValuesFromSavedDefaults(a.filters,a.sortBy||[],n)),a.filters=U.default.setFilterValuesFromRequest(a.filters,e),{filtersData:a,defaultFilterValues:n}},B=async({req:e,res:t,services:i})=>{const{token:s}=D.default.getValues(t),r={req:e,res:t,token:s},{executionData:o,queryData:l,childExecutionData:c}=await X({...r,dashboardService:i.dashboardService,reportingService:i.reportingService});return o&&await O({req:e,res:t,services:i,queryData:l,executionData:o,childExecutionData:c}),o},N=async({req:e,res:t,services:i})=>{const{token:s,dprUser:r,definitionsPath:o}=D.default.getValues(t),{reportId:l,id:c,executionId:a,type:n}=e.params;let d=i.reportingService;n===f.ReportType.REPORT&&(d=i.reportingService),n===f.ReportType.DASHBOARD&&(d=i.dashboardService);const u=await d.cancelAsyncRequest(s,l,c,a,o);u&&u.cancellationSucceeded&&await i.requestedReportService.updateStatus(a,r.id,f.RequestStatus.ABORTED)},k=async({req:e,res:t,services:i,next:s})=>{try{const{token:r,csrfToken:o,definitionsPath:l,dpdPathFromQuery:c,dprUser:a}=D.default.getValues(t),{reportId:n,type:d,id:u}=e.params,{definition:p}=t.locals,R=e.query.defaultsSaved,m={token:r,reportId:n,definitionPath:l,services:i};let y,S,v,M,F=[],w,A,I,b=[];if(d===f.ReportType.REPORT&&({name:y,reportName:S,description:v,fields:F,interactive:A}=await Z(p)),d===f.ReportType.DASHBOARD&&({name:y,reportName:S,description:v,sections:w,fields:F}=await Y({...m,definition:p})),F){const V=await ee(e,t,F,A||!1,i,a.id);b=V.defaultFilterValues||b,I=V.filtersData}const _={reportName:S,name:y,description:v,reportId:n,id:u,...c&&{definitionPath:l},csrfToken:o,template:M,sections:w,hasDefaults:b?.length>0,defaultsSaved:R,type:d,saveDefaultsEnabled:t.locals.saveDefaultsEnabled};return{title:`Request ${d}`,filtersDescription:`Customise your ${d} using the filters below and submit your request.`,filtersData:I,reportData:_}}catch(r){return s(r),!1}},H=e=>Object.keys(e.body).filter(t=>t.includes("filters.")).filter(t=>!!e.body[t]).map(t=>({name:t,value:e.body[t]}));var te={request:B,cancelRequest:N,renderRequest:k,getFiltersFromReqBody:H,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 { 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: components['schemas']['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 > 0,\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": "
|
|
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", "
|
|
4
|
+
"sourcesContent": ["/* eslint-disable no-param-reassign */\nimport { Request, Response, NextFunction } from 'express'\n\n// Utils\nimport { defaultFilterValue } from '../../../../utils/Personalisation/types'\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 { 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 | undefined\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 if (requestedReportData) 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 && { queryData: queryData.query }),\n ...(dataProductDefinitionsPath && { dataProductDefinitionsPath }),\n })\n .then((response) => {\n const { executionId, tableId } = response\n if (!executionId || !tableId) {\n throw new Error('requestChildReports: No execution of tableId in response')\n }\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 | undefined\n}> => {\n const { definitionsPath: dataProductDefinitionsPath, dpdPathFromQuery } = LocalsHelper.getValues(res)\n const { reportId, id, type } = req.body\n\n let fields: components['schemas']['FieldDefinition'][]\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?.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?.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: components['schemas']['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: 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 let defaultFilterValues\n if (res.locals['saveDefaultsEnabled']) {\n defaultFilterValues = await services.defaultFilterValuesService.get(userId, reportId, id, FiltersType.REQUEST)\n }\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: ReportingService | DashboardService = services.reportingService\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}: {\n req: Request\n res: Response\n next: NextFunction\n services: Services\n}): 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: defaultFilterValue[] = []\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 const filterData = await getFilterData(req, res, fields, interactive || false, services, dprUser.id)\n defaultFilterValues = filterData.defaultFilterValues || defaultFilterValues\n filtersData = filterData.filtersData\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 > 0,\n defaultsSaved,\n type: type as ReportType,\n saveDefaultsEnabled: res.locals['saveDefaultsEnabled'],\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
|
+
"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", "next", "csrfToken", "defaultsSaved", "definitionApiArgs", "template", "filterData", "error", "attr"]
|
|
7
7
|
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { Request, Response, NextFunction } from 'express'
|
|
3
3
|
|
|
4
4
|
// Utils
|
|
5
|
+
import { defaultFilterValue } from '../../../../utils/Personalisation/types'
|
|
5
6
|
import FiltersFormUtils from '../../../../components/_async/async-filters-form/utils'
|
|
6
7
|
import LocalsHelper from '../../../../utils/localsHelper'
|
|
7
8
|
import FiltersUtils from '../../../../components/_filters/utils'
|
|
@@ -44,7 +45,7 @@ export const updateStore = async ({
|
|
|
44
45
|
req: Request
|
|
45
46
|
res: Response
|
|
46
47
|
services: Services
|
|
47
|
-
queryData?: SetQueryFromFiltersResult
|
|
48
|
+
queryData?: SetQueryFromFiltersResult | undefined
|
|
48
49
|
executionData: ExecutionData
|
|
49
50
|
childExecutionData: Array<ChildReportExecutionData>
|
|
50
51
|
}): Promise<void> => {
|
|
@@ -97,7 +98,7 @@ export const updateStore = async ({
|
|
|
97
98
|
break
|
|
98
99
|
}
|
|
99
100
|
|
|
100
|
-
await services.requestedReportService.addReport(dprUser.id, requestedReportData)
|
|
101
|
+
if (requestedReportData) await services.requestedReportService.addReport(dprUser.id, requestedReportData)
|
|
101
102
|
}
|
|
102
103
|
|
|
103
104
|
async function requestChildReports(
|
|
@@ -105,18 +106,21 @@ async function requestChildReports(
|
|
|
105
106
|
reportingService: ReportingService,
|
|
106
107
|
token: string,
|
|
107
108
|
reportId: string,
|
|
108
|
-
queryData
|
|
109
|
-
dataProductDefinitionsPath
|
|
109
|
+
queryData?: SetQueryFromFiltersResult,
|
|
110
|
+
dataProductDefinitionsPath?: string,
|
|
110
111
|
): Promise<Array<ChildReportExecutionData>> {
|
|
111
112
|
return Promise.all(
|
|
112
113
|
childVariants.map((childVariant) =>
|
|
113
114
|
reportingService
|
|
114
115
|
.requestAsyncReport(token, reportId, childVariant.id, {
|
|
115
|
-
...queryData.query,
|
|
116
|
-
dataProductDefinitionsPath,
|
|
116
|
+
...(queryData && { queryData: queryData.query }),
|
|
117
|
+
...(dataProductDefinitionsPath && { dataProductDefinitionsPath }),
|
|
117
118
|
})
|
|
118
119
|
.then((response) => {
|
|
119
120
|
const { executionId, tableId } = response
|
|
121
|
+
if (!executionId || !tableId) {
|
|
122
|
+
throw new Error('requestChildReports: No execution of tableId in response')
|
|
123
|
+
}
|
|
120
124
|
return { executionId, tableId, variantId: childVariant.id }
|
|
121
125
|
}),
|
|
122
126
|
),
|
|
@@ -138,12 +142,12 @@ const requestProduct = async ({
|
|
|
138
142
|
}): Promise<{
|
|
139
143
|
executionData: ExecutionData
|
|
140
144
|
childExecutionData: Array<ChildReportExecutionData>
|
|
141
|
-
queryData
|
|
145
|
+
queryData?: SetQueryFromFiltersResult | undefined
|
|
142
146
|
}> => {
|
|
143
147
|
const { definitionsPath: dataProductDefinitionsPath, dpdPathFromQuery } = LocalsHelper.getValues(res)
|
|
144
148
|
const { reportId, id, type } = req.body
|
|
145
149
|
|
|
146
|
-
let fields
|
|
150
|
+
let fields: components['schemas']['FieldDefinition'][]
|
|
147
151
|
let queryData
|
|
148
152
|
let executionId
|
|
149
153
|
let tableId
|
|
@@ -153,7 +157,7 @@ const requestProduct = async ({
|
|
|
153
157
|
if (type === ReportType.REPORT) {
|
|
154
158
|
definition = await reportingService.getDefinition(token, reportId, id, dataProductDefinitionsPath)
|
|
155
159
|
|
|
156
|
-
fields = definition
|
|
160
|
+
fields = definition?.variant.specification?.fields || []
|
|
157
161
|
queryData = FiltersFormUtils.setQueryFromFilters(req, fields)
|
|
158
162
|
;({ executionId, tableId } = await reportingService.requestAsyncReport(token, reportId, id, {
|
|
159
163
|
...queryData.query,
|
|
@@ -165,7 +169,7 @@ const requestProduct = async ({
|
|
|
165
169
|
if (type === ReportType.DASHBOARD) {
|
|
166
170
|
definition = await dashboardService.getDefinition(token, reportId, id, dataProductDefinitionsPath)
|
|
167
171
|
|
|
168
|
-
fields = definition
|
|
172
|
+
fields = definition?.filterFields || []
|
|
169
173
|
queryData = FiltersFormUtils.setQueryFromFilters(req, fields)
|
|
170
174
|
;({ executionId, tableId } = await dashboardService.requestAsyncDashboard(token, reportId, id, {
|
|
171
175
|
...queryData.query,
|
|
@@ -212,7 +216,7 @@ const renderDashboardRequestData = async ({
|
|
|
212
216
|
const productDefinition = productDefinitions.find(
|
|
213
217
|
(def: components['schemas']['ReportDefinitionSummary']) => def.id === reportId,
|
|
214
218
|
)
|
|
215
|
-
const reportName = productDefinition
|
|
219
|
+
const reportName = productDefinition?.name
|
|
216
220
|
const { name, description, sections, filterFields: fields } = definition
|
|
217
221
|
|
|
218
222
|
return {
|
|
@@ -220,7 +224,7 @@ const renderDashboardRequestData = async ({
|
|
|
220
224
|
name,
|
|
221
225
|
description,
|
|
222
226
|
sections: sections || [],
|
|
223
|
-
fields,
|
|
227
|
+
fields: fields || [],
|
|
224
228
|
}
|
|
225
229
|
}
|
|
226
230
|
|
|
@@ -231,12 +235,12 @@ const renderReportRequestData = async (definition: components['schemas']['Single
|
|
|
231
235
|
name: definition.variant.name,
|
|
232
236
|
description: definition.variant.description || definition.description,
|
|
233
237
|
template: definition.variant.specification,
|
|
234
|
-
fields: definition?.variant?.specification?.fields,
|
|
238
|
+
fields: definition?.variant?.specification?.fields || [],
|
|
235
239
|
interactive: definition?.variant?.interactive,
|
|
236
240
|
}
|
|
237
241
|
}
|
|
238
242
|
|
|
239
|
-
export const getDefintionByType = async (req: Request, res: Response,
|
|
243
|
+
export const getDefintionByType = async (req: Request, res: Response, _next: NextFunction, services: Services) => {
|
|
240
244
|
const { token, definitionsPath } = LocalsHelper.getValues(res)
|
|
241
245
|
const { reportId, id, variantId, type } = req.params
|
|
242
246
|
|
|
@@ -259,11 +263,14 @@ const getFilterData = async (
|
|
|
259
263
|
let filtersData = <RenderFiltersReturnValue>await FiltersFormUtils.renderFilters(fields, interactive)
|
|
260
264
|
filtersData.filters = PersonalistionUtils.setUserContextDefaults(res, filtersData.filters)
|
|
261
265
|
|
|
262
|
-
|
|
266
|
+
let defaultFilterValues
|
|
267
|
+
if (res.locals['saveDefaultsEnabled']) {
|
|
268
|
+
defaultFilterValues = await services.defaultFilterValuesService.get(userId, reportId, id, FiltersType.REQUEST)
|
|
269
|
+
}
|
|
263
270
|
if (defaultFilterValues) {
|
|
264
271
|
filtersData = PersonalistionUtils.setFilterValuesFromSavedDefaults(
|
|
265
272
|
filtersData.filters,
|
|
266
|
-
filtersData.sortBy,
|
|
273
|
+
filtersData.sortBy || [],
|
|
267
274
|
defaultFilterValues,
|
|
268
275
|
)
|
|
269
276
|
}
|
|
@@ -307,13 +314,13 @@ export const cancelRequest = async ({ req, res, services }: AsyncReportUtilsPara
|
|
|
307
314
|
const { token, dprUser, definitionsPath } = LocalsHelper.getValues(res)
|
|
308
315
|
const { reportId, id, executionId, type } = req.params
|
|
309
316
|
|
|
310
|
-
let service
|
|
317
|
+
let service: ReportingService | DashboardService = services.reportingService
|
|
311
318
|
if (type === ReportType.REPORT) service = services.reportingService
|
|
312
319
|
if (type === ReportType.DASHBOARD) service = services.dashboardService
|
|
313
320
|
|
|
314
321
|
const response = await service.cancelAsyncRequest(token, reportId, id, executionId, definitionsPath)
|
|
315
322
|
|
|
316
|
-
if (response && response
|
|
323
|
+
if (response && response['cancellationSucceeded']) {
|
|
317
324
|
await services.requestedReportService.updateStatus(executionId, dprUser.id, RequestStatus.ABORTED)
|
|
318
325
|
}
|
|
319
326
|
}
|
|
@@ -329,12 +336,17 @@ export const renderRequest = async ({
|
|
|
329
336
|
res,
|
|
330
337
|
services,
|
|
331
338
|
next,
|
|
332
|
-
}:
|
|
339
|
+
}: {
|
|
340
|
+
req: Request
|
|
341
|
+
res: Response
|
|
342
|
+
next: NextFunction
|
|
343
|
+
services: Services
|
|
344
|
+
}): Promise<RequestDataResult | boolean> => {
|
|
333
345
|
try {
|
|
334
346
|
const { token, csrfToken, definitionsPath: definitionPath, dpdPathFromQuery, dprUser } = LocalsHelper.getValues(res)
|
|
335
347
|
const { reportId, type, id } = req.params
|
|
336
348
|
const { definition } = res.locals
|
|
337
|
-
const defaultsSaved = <string>req.query
|
|
349
|
+
const defaultsSaved = <string>req.query['defaultsSaved']
|
|
338
350
|
|
|
339
351
|
const definitionApiArgs = { token, reportId, definitionPath, services }
|
|
340
352
|
|
|
@@ -342,11 +354,11 @@ export const renderRequest = async ({
|
|
|
342
354
|
let reportName
|
|
343
355
|
let description
|
|
344
356
|
let template
|
|
345
|
-
let fields: components['schemas']['FieldDefinition'][]
|
|
357
|
+
let fields: components['schemas']['FieldDefinition'][] = []
|
|
346
358
|
let sections
|
|
347
359
|
let interactive
|
|
348
360
|
let filtersData
|
|
349
|
-
let defaultFilterValues
|
|
361
|
+
let defaultFilterValues: defaultFilterValue[] = []
|
|
350
362
|
|
|
351
363
|
if (type === ReportType.REPORT) {
|
|
352
364
|
;({ name, reportName, description, fields, interactive } = await renderReportRequestData(definition))
|
|
@@ -360,7 +372,9 @@ export const renderRequest = async ({
|
|
|
360
372
|
}
|
|
361
373
|
|
|
362
374
|
if (fields) {
|
|
363
|
-
|
|
375
|
+
const filterData = await getFilterData(req, res, fields, interactive || false, services, dprUser.id)
|
|
376
|
+
defaultFilterValues = filterData.defaultFilterValues || defaultFilterValues
|
|
377
|
+
filtersData = filterData.filtersData
|
|
364
378
|
}
|
|
365
379
|
|
|
366
380
|
const reportData: RequestReportData = {
|
|
@@ -376,6 +390,7 @@ export const renderRequest = async ({
|
|
|
376
390
|
hasDefaults: defaultFilterValues?.length > 0,
|
|
377
391
|
defaultsSaved,
|
|
378
392
|
type: type as ReportType,
|
|
393
|
+
saveDefaultsEnabled: res.locals['saveDefaultsEnabled'],
|
|
379
394
|
}
|
|
380
395
|
|
|
381
396
|
return {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var $=Object.create;var u=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var q=Object.getOwnPropertyNames;var x=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty;var S=(r,e)=>{for(var t in e)u(r,t,{get:e[t],enumerable:!0})},c=(r,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of q(e))!y.call(r,s)&&s!==t&&u(r,s,{get:()=>e[s],enumerable:!(o=g(e,s))||o.enumerable});return r};var p=(r,e,t)=>(t=r!=null?$(x(r)):{},c(e||!r||!r.__esModule?u(t,"default",{value:r,enumerable:!0}):t,r)),B=r=>c(u({},"__esModule",{value:!0}),r);var U={};S(U,{Redirects:()=>f,RequestReportRoutes:()=>H,Routes:()=>R});module.exports=B(U);var n=require("express"),m=p(require("./controller")),a=p(require("./filters/routes")),l=p(require("./status/routes")),d=p(require("../../../middleware/reportAuthoriser"));function R({layoutPath:r,services:e}){const t=(0,n.Router)({mergeParams:!0}),o=new m.default(r,e);return t.use("/:type/:reportId/:id/filters",(0,d.default)(e,r),(0,a.default)({layoutPath:r,services:e}),o.errorHandler),t.use("/:type/:reportId/:id/:executionId/status",(0,d.default)(e,r),(0,l.default)({layoutPath:r,services:e}),o.errorHandler),t}function f(){const r=(0,n.Router)({mergeParams:!0});return r.get("/async/:type/:reportId/:id/request",(e,t)=>{const{type:o,reportId:s,id:i}=e.params;t.redirect(`${t.locals.nestedBaseUrl}/dpr/request-report/${o}/${s}/${i}/filters`)}),r.get("/async/:type/:reportId/:id/request/:executionId",(e,t)=>{const{type:o,reportId:s,id:i,executionId:I}=e.params;t.redirect(`${t.locals.nestedBaseUrl}/dpr/request-report/${o}/${s}/${i}/${I}/status`)}),r}const H=({services:r,path:e,layoutPath:t})=>{const o=(0,n.Router)({mergeParams:!0});return o.use(e,R({services:r,layoutPath:t})),o.use("/",f()),o};0&&(module.exports={Redirects,RequestReportRoutes,Routes});
|
|
1
|
+
"use strict";var $=Object.create;var u=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var q=Object.getOwnPropertyNames;var x=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty;var S=(r,e)=>{for(var t in e)u(r,t,{get:e[t],enumerable:!0})},c=(r,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of q(e))!y.call(r,s)&&s!==t&&u(r,s,{get:()=>e[s],enumerable:!(o=g(e,s))||o.enumerable});return r};var p=(r,e,t)=>(t=r!=null?$(x(r)):{},c(e||!r||!r.__esModule?u(t,"default",{value:r,enumerable:!0}):t,r)),B=r=>c(u({},"__esModule",{value:!0}),r);var U={};S(U,{Redirects:()=>f,RequestReportRoutes:()=>H,Routes:()=>R});module.exports=B(U);var n=require("express"),m=p(require("./controller")),a=p(require("./filters/routes")),l=p(require("./status/routes")),d=p(require("../../../middleware/reportAuthoriser"));function R({layoutPath:r,services:e}){const t=(0,n.Router)({mergeParams:!0}),o=new m.default(r,e);return t.use("/:type/:reportId/:id/filters",(0,d.default)(e,r),(0,a.default)({layoutPath:r,services:e}),o.errorHandler),t.use("/:type/:reportId/:id/:executionId/status",(0,d.default)(e,r),(0,l.default)({layoutPath:r,services:e}),o.errorHandler),t}function f(){const r=(0,n.Router)({mergeParams:!0});return r.get("/async/:type/:reportId/:id/request",(e,t)=>{const{type:o,reportId:s,id:i}=e.params;t.redirect(`${t.locals.nestedBaseUrl}/dpr/request-report/${o}/${s}/${i}/filters`)}),r.get("/async/:type/:reportId/:id/request/:executionId",(e,t)=>{const{type:o,reportId:s,id:i,executionId:I}=e.params;t.redirect(`${t.locals.nestedBaseUrl}/dpr/request-report/${o}/${s}/${i}/${I}/status`)}),r}const H=({services:r,path:e,layoutPath:t})=>{const o=(0,n.Router)({mergeParams:!0});return o.use(e,R({services:r,layoutPath:t})),o.use("/",f()),o};0&&(module.exports={Redirects,RequestReportRoutes,Routes});
|
|
2
2
|
//# sourceMappingURL=routes.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/dpr/routes/journeys/request-report/routes.ts"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable no-param-reassign */\nimport { Router } from 'express'\nimport { Services } from '../../../types/Services'\nimport RequestReportController from './controller'\n\n// Routes\nimport requestReportRoutes from './filters/routes'\nimport requestStatusRoutes from './status/routes'\n\n// middleware\nimport reportAuthoriser from '../../../middleware/reportAuthoriser'\n\nexport function Routes({ layoutPath, services }: { services: Services; layoutPath: string }) {\n const router = Router({ mergeParams: true })\n\n const controller = new RequestReportController(layoutPath, services)\n router.use(\n `/:type/:reportId/:id/filters`,\n reportAuthoriser(services, layoutPath),\n requestReportRoutes({ layoutPath, services }),\n controller.errorHandler,\n )\n router.use(\n `/:type/:reportId/:id/:executionId/status`,\n reportAuthoriser(services, layoutPath),\n requestStatusRoutes({ layoutPath, services }),\n controller.errorHandler,\n )\n\n return router\n}\n\nexport function Redirects() {\n const router = Router({ mergeParams: true })\n\n // Request route redirect\n router.get(`/async/:type/:reportId/:id/request`, (req, res) => {\n const { type, reportId, id } = req.params\n res.redirect(`${res.locals
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["/* eslint-disable no-param-reassign */\nimport { Router } from 'express'\nimport { Services } from '../../../types/Services'\nimport RequestReportController from './controller'\n\n// Routes\nimport requestReportRoutes from './filters/routes'\nimport requestStatusRoutes from './status/routes'\n\n// middleware\nimport reportAuthoriser from '../../../middleware/reportAuthoriser'\n\nexport function Routes({ layoutPath, services }: { services: Services; layoutPath: string }) {\n const router = Router({ mergeParams: true })\n\n const controller = new RequestReportController(layoutPath, services)\n router.use(\n `/:type/:reportId/:id/filters`,\n reportAuthoriser(services, layoutPath),\n requestReportRoutes({ layoutPath, services }),\n controller.errorHandler,\n )\n router.use(\n `/:type/:reportId/:id/:executionId/status`,\n reportAuthoriser(services, layoutPath),\n requestStatusRoutes({ layoutPath, services }),\n controller.errorHandler,\n )\n\n return router\n}\n\nexport function Redirects() {\n const router = Router({ mergeParams: true })\n\n // Request route redirect\n router.get(`/async/:type/:reportId/:id/request`, (req, res) => {\n const { type, reportId, id } = req.params\n res.redirect(`${res.locals['nestedBaseUrl']}/dpr/request-report/${type}/${reportId}/${id}/filters`)\n })\n\n // Status route redirect\n router.get(`/async/:type/:reportId/:id/request/:executionId`, (req, res) => {\n const { type, reportId, id, executionId } = req.params\n res.redirect(`${res.locals['nestedBaseUrl']}/dpr/request-report/${type}/${reportId}/${id}/${executionId}/status`)\n })\n\n return router\n}\n\nexport const RequestReportRoutes = ({\n services,\n path,\n layoutPath,\n}: {\n services: Services\n path: string\n layoutPath: string\n}) => {\n const router = Router({ mergeParams: true })\n router.use(path, Routes({ services, layoutPath }))\n router.use('/', Redirects())\n\n return router\n}\n"],
|
|
5
|
+
"mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,eAAAE,EAAA,wBAAAC,EAAA,WAAAC,IAAA,eAAAC,EAAAL,GACA,IAAAM,EAAuB,mBAEvBC,EAAoC,2BAGpCC,EAAgC,+BAChCA,EAAgC,8BAGhCC,EAA6B,mDAEtB,SAASL,EAAO,CAAE,WAAAM,EAAY,SAAAC,CAAS,EAA+C,CAC3F,MAAMC,KAAS,UAAO,CAAE,YAAa,EAAK,CAAC,EAErCC,EAAa,IAAI,EAAAC,QAAwBJ,EAAYC,CAAQ,EACnE,OAAAC,EAAO,IACL,kCACA,EAAAG,SAAiBJ,EAAUD,CAAU,KACrC,EAAAM,SAAoB,CAAE,WAAAN,EAAY,SAAAC,CAAS,CAAC,EAC5CE,EAAW,YACb,EACAD,EAAO,IACL,8CACA,EAAAG,SAAiBJ,EAAUD,CAAU,KACrC,EAAAO,SAAoB,CAAE,WAAAP,EAAY,SAAAC,CAAS,CAAC,EAC5CE,EAAW,YACb,EAEOD,CACT,CAEO,SAASV,GAAY,CAC1B,MAAMU,KAAS,UAAO,CAAE,YAAa,EAAK,CAAC,EAG3C,OAAAA,EAAO,IAAI,qCAAsC,CAACM,EAAKC,IAAQ,CAC7D,KAAM,CAAE,KAAAC,EAAM,SAAAC,EAAU,GAAAC,CAAG,EAAIJ,EAAI,OACnCC,EAAI,SAAS,GAAGA,EAAI,OAAO,aAAgB,uBAAuBC,CAAI,IAAIC,CAAQ,IAAIC,CAAE,UAAU,CACpG,CAAC,EAGDV,EAAO,IAAI,kDAAmD,CAACM,EAAKC,IAAQ,CAC1E,KAAM,CAAE,KAAAC,EAAM,SAAAC,EAAU,GAAAC,EAAI,YAAAC,CAAY,EAAIL,EAAI,OAChDC,EAAI,SAAS,GAAGA,EAAI,OAAO,aAAgB,uBAAuBC,CAAI,IAAIC,CAAQ,IAAIC,CAAE,IAAIC,CAAW,SAAS,CAClH,CAAC,EAEMX,CACT,CAEO,MAAMT,EAAsB,CAAC,CAClC,SAAAQ,EACA,KAAAa,EACA,WAAAd,CACF,IAIM,CACJ,MAAME,KAAS,UAAO,CAAE,YAAa,EAAK,CAAC,EAC3C,OAAAA,EAAO,IAAIY,EAAMpB,EAAO,CAAE,SAAAO,EAAU,WAAAD,CAAW,CAAC,CAAC,EACjDE,EAAO,IAAI,IAAKV,EAAU,CAAC,EAEpBU,CACT",
|
|
6
6
|
"names": ["routes_exports", "__export", "Redirects", "RequestReportRoutes", "Routes", "__toCommonJS", "import_express", "import_controller", "import_routes", "import_reportAuthoriser", "layoutPath", "services", "router", "controller", "RequestReportController", "reportAuthoriser", "requestReportRoutes", "requestStatusRoutes", "req", "res", "type", "reportId", "id", "executionId", "path"]
|
|
7
7
|
}
|
|
@@ -36,13 +36,13 @@ export function Redirects() {
|
|
|
36
36
|
// Request route redirect
|
|
37
37
|
router.get(`/async/:type/:reportId/:id/request`, (req, res) => {
|
|
38
38
|
const { type, reportId, id } = req.params
|
|
39
|
-
res.redirect(`${res.locals
|
|
39
|
+
res.redirect(`${res.locals['nestedBaseUrl']}/dpr/request-report/${type}/${reportId}/${id}/filters`)
|
|
40
40
|
})
|
|
41
41
|
|
|
42
42
|
// Status route redirect
|
|
43
43
|
router.get(`/async/:type/:reportId/:id/request/:executionId`, (req, res) => {
|
|
44
44
|
const { type, reportId, id, executionId } = req.params
|
|
45
|
-
res.redirect(`${res.locals
|
|
45
|
+
res.redirect(`${res.locals['nestedBaseUrl']}/dpr/request-report/${type}/${reportId}/${id}/${executionId}/status`)
|
|
46
46
|
})
|
|
47
47
|
|
|
48
48
|
return router
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var
|
|
1
|
+
"use strict";var p=Object.create;var a=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var v=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var b=(r,e)=>{for(var t in e)a(r,t,{get:e[t],enumerable:!0})},l=(r,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of m(e))!f.call(r,s)&&s!==t&&a(r,s,{get:()=>e[s],enumerable:!(o=h(e,s))||o.enumerable});return r};var i=(r,e,t)=>(t=r!=null?p(v(r)):{},l(e||!r||!r.__esModule?a(t,"default",{value:r,enumerable:!0}):t,r)),R=r=>l(a({},"__esModule",{value:!0}),r);var E={};b(E,{RequestStatusController:()=>c,default:()=>w});module.exports=R(E);var u=i(require("./utils")),d=i(require("../filters/utils")),y=i(require("../../../../components/user-reports/requested/utils")),n=i(require("../../../../utils/ErrorHandler"));class c{constructor(e,t){this.GET=async(e,t,o)=>{try{const s=await u.default.renderPolling({req:e,res:t,services:this.services,next:o});t.render("dpr/routes/journeys/request-report/status/view",{layoutPath:this.layoutPath,...s})}catch(s){e.body.title="Failed to retrieve report status",e.body.errorDescription="We were unable to retrieve the report status:",e.body.error=new n.default(s).formatError(),o()}};this.POST=async(e,t,o)=>{try{const s=await y.default.getRequestStatus({req:e,res:t,services:this.services});t.send({status:s.status})}catch{t.send({status:"FAILED"})}};this.DELETE=async(e,t,o)=>{try{await d.default.cancelRequest({req:e,res:t,services:this.services}),t.end()}catch(s){e.body.title="Failed to abort request",e.body.errorDescription="We were unable to abort the report request for the following reason:",e.body.error=new n.default(s).formatError(),o()}};this.layoutPath=e,this.services=t}}var w=c;0&&(module.exports={RequestStatusController});
|
|
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/status/controller.ts"],
|
|
4
|
-
"sourcesContent": ["import { RequestHandler } from 'express'\nimport { Services } from '../../../../types/Services'\nimport AsyncPollingUtils from './utils'\nimport AsyncRequestUtils from '../filters/utils'\nimport AsyncRequestListUtils from '../../../../components/user-reports/requested/utils'\nimport
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["controller_exports", "__export", "RequestStatusController", "controller_default", "__toCommonJS", "import_utils", "layoutPath", "services", "req", "res", "next", "pollingRenderData", "AsyncPollingUtils", "error", "
|
|
4
|
+
"sourcesContent": ["import { RequestHandler } from 'express'\nimport { Services } from '../../../../types/Services'\nimport AsyncPollingUtils from './utils'\nimport AsyncRequestUtils from '../filters/utils'\nimport AsyncRequestListUtils from '../../../../components/user-reports/requested/utils'\nimport ErrorHandler from '../../../../utils/ErrorHandler'\n\nclass RequestStatusController {\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 status page\n GET: RequestHandler = async (req, res, next) => {\n try {\n const pollingRenderData = await AsyncPollingUtils.renderPolling({\n req,\n res,\n services: this.services,\n next,\n })\n res.render(`dpr/routes/journeys/request-report/status/view`, {\n layoutPath: this.layoutPath,\n ...pollingRenderData,\n })\n } catch (error) {\n req.body.title = 'Failed to retrieve report status'\n req.body.errorDescription = 'We were unable to retrieve the report status:'\n req.body.error = new ErrorHandler(error).formatError()\n next()\n }\n }\n\n // Poll request status\n POST: RequestHandler = async (req, res, _next) => {\n try {\n const response = await AsyncRequestListUtils.getRequestStatus({ req, res, services: this.services })\n res.send({ status: response.status })\n } catch (error) {\n res.send({ status: 'FAILED' })\n }\n }\n\n DELETE: RequestHandler = async (req, res, next) => {\n try {\n await AsyncRequestUtils.cancelRequest({\n req,\n res,\n services: this.services,\n })\n res.end()\n } catch (error) {\n req.body.title = 'Failed to abort request'\n req.body.errorDescription = 'We were unable to abort the report request for the following reason:'\n req.body.error = new ErrorHandler(error).formatError()\n next()\n }\n }\n}\n\nexport { RequestStatusController }\nexport default RequestStatusController\n"],
|
|
5
|
+
"mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,6BAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAEA,IAAAK,EAA8B,sBAC9BA,EAA8B,+BAC9BA,EAAkC,kEAClCC,EAAyB,6CAEzB,MAAMJ,CAAwB,CAK5B,YAAYK,EAAoBC,EAAoB,CAMpD,SAAsB,MAAOC,EAAKC,EAAKC,IAAS,CAC9C,GAAI,CACF,MAAMC,EAAoB,MAAM,EAAAC,QAAkB,cAAc,CAC9D,IAAAJ,EACA,IAAAC,EACA,SAAU,KAAK,SACf,KAAAC,CACF,CAAC,EACDD,EAAI,OAAO,iDAAkD,CAC3D,WAAY,KAAK,WACjB,GAAGE,CACL,CAAC,CACH,OAASE,EAAO,CACdL,EAAI,KAAK,MAAQ,mCACjBA,EAAI,KAAK,iBAAmB,gDAC5BA,EAAI,KAAK,MAAQ,IAAI,EAAAM,QAAaD,CAAK,EAAE,YAAY,EACrDH,EAAK,CACP,CACF,EAGA,UAAuB,MAAOF,EAAKC,EAAKM,IAAU,CAChD,GAAI,CACF,MAAMC,EAAW,MAAM,EAAAC,QAAsB,iBAAiB,CAAE,IAAAT,EAAK,IAAAC,EAAK,SAAU,KAAK,QAAS,CAAC,EACnGA,EAAI,KAAK,CAAE,OAAQO,EAAS,MAAO,CAAC,CACtC,MAAgB,CACdP,EAAI,KAAK,CAAE,OAAQ,QAAS,CAAC,CAC/B,CACF,EAEA,YAAyB,MAAOD,EAAKC,EAAKC,IAAS,CACjD,GAAI,CACF,MAAM,EAAAQ,QAAkB,cAAc,CACpC,IAAAV,EACA,IAAAC,EACA,SAAU,KAAK,QACjB,CAAC,EACDA,EAAI,IAAI,CACV,OAASI,EAAO,CACdL,EAAI,KAAK,MAAQ,0BACjBA,EAAI,KAAK,iBAAmB,uEAC5BA,EAAI,KAAK,MAAQ,IAAI,EAAAM,QAAaD,CAAK,EAAE,YAAY,EACrDH,EAAK,CACP,CACF,EAjDE,KAAK,WAAaJ,EAClB,KAAK,SAAWC,CAClB,CAgDF,CAGA,IAAOL,EAAQD",
|
|
6
|
+
"names": ["controller_exports", "__export", "RequestStatusController", "controller_default", "__toCommonJS", "import_utils", "import_ErrorHandler", "layoutPath", "services", "req", "res", "next", "pollingRenderData", "AsyncPollingUtils", "error", "ErrorHandler", "_next", "response", "AsyncRequestListUtils", "AsyncRequestUtils"]
|
|
7
7
|
}
|
|
@@ -3,7 +3,7 @@ import { Services } from '../../../../types/Services'
|
|
|
3
3
|
import AsyncPollingUtils from './utils'
|
|
4
4
|
import AsyncRequestUtils from '../filters/utils'
|
|
5
5
|
import AsyncRequestListUtils from '../../../../components/user-reports/requested/utils'
|
|
6
|
-
import
|
|
6
|
+
import ErrorHandler from '../../../../utils/ErrorHandler'
|
|
7
7
|
|
|
8
8
|
class RequestStatusController {
|
|
9
9
|
layoutPath: string
|
|
@@ -31,13 +31,13 @@ class RequestStatusController {
|
|
|
31
31
|
} catch (error) {
|
|
32
32
|
req.body.title = 'Failed to retrieve report status'
|
|
33
33
|
req.body.errorDescription = 'We were unable to retrieve the report status:'
|
|
34
|
-
req.body.error =
|
|
34
|
+
req.body.error = new ErrorHandler(error).formatError()
|
|
35
35
|
next()
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
// Poll request status
|
|
40
|
-
POST: RequestHandler = async (req, res,
|
|
40
|
+
POST: RequestHandler = async (req, res, _next) => {
|
|
41
41
|
try {
|
|
42
42
|
const response = await AsyncRequestListUtils.getRequestStatus({ req, res, services: this.services })
|
|
43
43
|
res.send({ status: response.status })
|
|
@@ -57,7 +57,7 @@ class RequestStatusController {
|
|
|
57
57
|
} catch (error) {
|
|
58
58
|
req.body.title = 'Failed to abort request'
|
|
59
59
|
req.body.errorDescription = 'We were unable to abort the report request for the following reason:'
|
|
60
|
-
req.body.error =
|
|
60
|
+
req.body.error = new ErrorHandler(error).formatError()
|
|
61
61
|
next()
|
|
62
62
|
}
|
|
63
63
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var l=Object.create;var u=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var f=Object.getPrototypeOf,E=Object.prototype.hasOwnProperty;var S=(e,r)=>{for(var t in r)u(e,t,{get:r[t],enumerable:!0})},n=(e,r,t,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of p(r))!E.call(e,s)&&s!==t&&u(e,s,{get:()=>r[s],enumerable:!(o=a(r,s))||o.enumerable});return e};var g=(e,r,t)=>(t=e!=null?l(f(e)):{},n(r||!e||!e.__esModule?u(t,"default",{value:e,enumerable:!0}):t,e)),v=e=>n(u({},"__esModule",{value:!0}),e);var T={};S(T,{default:()=>P,routes:()=>c});module.exports=v(T);var i=require("express"),m=g(require("./controller"));function c({layoutPath:e,services:r}){const t=(0,i.Router)({mergeParams:!0}),o=new m.default(e,r);return t.get("/",o.GET),t.post("/",o.POST),t.delete("/",o.DELETE),t}var P=c;0&&(module.exports={routes});
|
|
1
|
+
"use strict";var l=Object.create;var u=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var f=Object.getPrototypeOf,E=Object.prototype.hasOwnProperty;var S=(e,r)=>{for(var t in r)u(e,t,{get:r[t],enumerable:!0})},n=(e,r,t,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of p(r))!E.call(e,s)&&s!==t&&u(e,s,{get:()=>r[s],enumerable:!(o=a(r,s))||o.enumerable});return e};var g=(e,r,t)=>(t=e!=null?l(f(e)):{},n(r||!e||!e.__esModule?u(t,"default",{value:e,enumerable:!0}):t,e)),v=e=>n(u({},"__esModule",{value:!0}),e);var T={};S(T,{default:()=>P,routes:()=>c});module.exports=v(T);var i=require("express"),m=g(require("./controller"));function c({layoutPath:e,services:r}){const t=(0,i.Router)({mergeParams:!0}),o=new m.default(e,r);return t.get("/",o.GET),t.post("/",o.POST),t.delete("/",o.DELETE),t}var P=c;0&&(module.exports={routes});
|
|
2
2
|
//# sourceMappingURL=routes.js.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/dpr/routes/journeys/request-report/status/routes.ts"],
|
|
4
4
|
"sourcesContent": ["/* eslint-disable no-param-reassign */\nimport { Router } from 'express'\nimport RequestStatusController from './controller'\nimport { Services } from '../../../../types/Services'\n\nexport function routes({ layoutPath, services }: { layoutPath: string; services: Services }) {\n const router = Router({ mergeParams: true })\n const controller = new RequestStatusController(layoutPath, services)\n\n router.get(`/`, controller.GET)\n router.post(`/`, controller.POST)\n router.delete(`/`, controller.DELETE)\n\n return router\n}\n\nexport default routes\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,WAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAAuB,mBACvBC,EAAoC,2BAG7B,SAASH,EAAO,CAAE,WAAAI,EAAY,SAAAC,CAAS,EAA+C,CAC3F,MAAMC,KAAS,UAAO,CAAE,YAAa,EAAK,CAAC,EACrCC,EAAa,IAAI,EAAAC,QAAwBJ,EAAYC,CAAQ,EAEnE,OAAAC,EAAO,IAAI,IAAKC,EAAW,GAAG,EAC9BD,EAAO,KAAK,IAAKC,EAAW,IAAI,EAChCD,EAAO,OAAO,IAAKC,EAAW,MAAM,EAE7BD,CACT,CAEA,IAAOP,EAAQC",
|
|
6
6
|
"names": ["routes_exports", "__export", "routes_default", "routes", "__toCommonJS", "import_express", "import_controller", "layoutPath", "services", "router", "controller", "RequestStatusController"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var
|
|
1
|
+
"use strict";var d=Object.create;var n=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var r=Object.getPrototypeOf,b=Object.prototype.hasOwnProperty;var h=(e,i,s,t)=>{if(i&&typeof i=="object"||typeof i=="function")for(let c of y(i))!b.call(e,c)&&c!==s&&n(e,c,{get:()=>i[c],enumerable:!(t=a(i,c))||t.enumerable});return e};var R=(e,i,s)=>(s=e!=null?d(r(e)):{},h(i||!e||!e.__esModule?n(s,"default",{value:e,enumerable:!0}):s,e));var o=require("cypress-tests/cypressUtils"),u=R(require("dayjs")),l=require("test-app/routes/integrationTests/redisStateTestUtils");context("Request status",()=>{const e="/embedded/platform/";beforeEach(()=>{(0,o.executeReportStubs)(),cy.task("stubDefinitionRequestExamplesSuccess"),cy.task("stubRequestSuccessResult20WithDelay")}),describe("post request",()=>{const i="";it("should show the status pages",()=>{cy.visit(e),cy.findByLabelText(/Reports catalogue.*/i).within(()=>{cy.findByRole("row",{name:(s,t)=>!!t.textContent?.includes("Successful Report")&&!!t.textContent?.includes("this will succeed")}).within(()=>{cy.findByRole("link",{name:"Request report"}).click()})}),cy.findByRole("button",{name:/Request/}).click(),(0,o.checkA11y)(),cy.task("stubReportsPickedStatus"),cy.findByText(/picked/i).should("be.visible"),(0,o.checkA11y)(),cy.task("stubReportsStartedStatus"),cy.findByText(/started/i).should("be.visible"),(0,o.checkA11y)(),cy.task("stubReportsFinishedStatus"),cy.findAllByRole("heading",{name:/successful report/i}).should("be.visible")}),it("should timeout",()=>{cy.visit(e),cy.findByLabelText(/Reports catalogue.*/i).within(()=>{cy.findByRole("row",{name:(s,t)=>!!t.textContent?.includes("Successful Report")&&!!t.textContent?.includes("this will succeed")}).within(()=>{cy.findByRole("link",{name:"Request report"}).click()})}),cy.findByRole("button",{name:/Request/}).click(),(0,o.checkA11y)(),cy.task("stubReportsPickedStatus"),cy.findByText("PICKED").should("be.visible"),(0,l.getRedisState)().then(s=>{const t={...s.body};t.requestedReports[0].timestamp.requested=(0,u.default)(s.body.requestedReports[0].timestamp.requested).add(-1,"days").toDate(),(0,l.setRedisState)(t)}),cy.findAllByText(/Request taking too long/).eq(0).should("be.visible"),(0,o.checkA11y)()}),describe("failure status pages",()=>{beforeEach(()=>{cy.task("resetRedis"),cy.task("stubReportsPickedStatus"),cy.visit(e),cy.findByLabelText(/Reports catalogue.*/i).within(()=>{cy.findByRole("row",{name:(s,t)=>!!t.textContent?.includes("Successful Report")&&!!t.textContent?.includes("this will succeed")}).within(()=>{cy.findByRole("link",{name:"Request report"}).click()})}),cy.findByRole("button",{name:/Request/}).click(),cy.findByText(/submitted/i).should("be.visible"),cy.findByText(/picked/i).should("be.visible")}),it("should show the aborted status page",()=>{cy.task("stubReportsAbortedStatus"),cy.findByText(/aborted/i).should("be.visible"),cy.injectAxe(),cy.checkA11y()}),it("should show the expired status page",()=>{cy.task("stubReportsExpiredStatus"),cy.findByText(/expired/i).should("be.visible"),cy.injectAxe(),cy.checkA11y()}),it("should show the failed status page",()=>{cy.task("stubReportsFailedStatus"),cy.findByText(/your report has failed to generate/i).should("be.visible"),cy.findByRole("group").contains("Show full error").should("be.visible"),cy.findByText(/Show full error/).click(),cy.findByText(/a developer message goes here/).should("be.visible"),cy.findAllByRole("list").contains("Report ID: request-examples").should("be.visible"),cy.findAllByRole("list").contains(`Execution ID: ${i}`).should("be.visible"),cy.findAllByRole("list").contains("Table ID: tblId_").should("be.visible"),cy.injectAxe(),cy.checkA11y()})})})});
|
|
2
2
|
//# sourceMappingURL=tests.cy.js.map
|