@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.
Files changed (560) hide show
  1. package/dpr/assets/app.js.map +1 -1
  2. package/dpr/components/_async/async-filters-form/sortByTemplate.js +1 -1
  3. package/dpr/components/_async/async-filters-form/sortByTemplate.js.map +1 -1
  4. package/dpr/components/_async/async-filters-form/types.d.js +1 -1
  5. package/dpr/components/_async/async-filters-form/types.d.js.map +1 -1
  6. package/dpr/components/_async/async-filters-form/utils.js +1 -1
  7. package/dpr/components/_async/async-filters-form/utils.js.map +2 -2
  8. package/dpr/components/_async/async-filters-form/utils.test.ts +9 -9
  9. package/dpr/components/_async/async-filters-form/utils.ts +1 -1
  10. package/dpr/components/_async/async-filters-form/view.njk +6 -3
  11. package/dpr/components/_catalogue/catalogue/types.js +1 -1
  12. package/dpr/components/_catalogue/catalogue/types.js.map +1 -1
  13. package/dpr/components/_catalogue/catalogue/utils.js +1 -1
  14. package/dpr/components/_catalogue/catalogue/utils.js.map +2 -2
  15. package/dpr/components/_catalogue/catalogue/utils.test.ts +6 -3
  16. package/dpr/components/_catalogue/catalogue/utils.ts +2 -2
  17. package/dpr/components/_catalogue/catalogue-list/utils.js +1 -1
  18. package/dpr/components/_catalogue/catalogue-list/utils.js.map +2 -2
  19. package/dpr/components/_catalogue/catalogue-list/utils.test.ts +1 -0
  20. package/dpr/components/_catalogue/catalogue-list/utils.ts +5 -5
  21. package/dpr/components/_charts/chart/Buckets.js +1 -1
  22. package/dpr/components/_charts/chart/Buckets.js.map +3 -3
  23. package/dpr/components/_charts/chart/Buckets.ts +3 -3
  24. package/dpr/components/_charts/chart/heatmap/HeatmapChart.js +1 -1
  25. package/dpr/components/_charts/chart/heatmap/HeatmapChart.js.map +3 -3
  26. package/dpr/components/_charts/chart/heatmap/HeatmapChart.ts +1 -13
  27. package/dpr/components/_charts/chart/heatmap/types.js +1 -1
  28. package/dpr/components/_charts/chart/heatmap/types.js.map +2 -2
  29. package/dpr/components/_charts/chart/heatmap/types.ts +1 -1
  30. package/dpr/components/_charts/utils.js +1 -1
  31. package/dpr/components/_charts/utils.js.map +3 -3
  32. package/dpr/components/_charts/utils.test.ts +1 -0
  33. package/dpr/components/_charts/utils.ts +84 -43
  34. package/dpr/components/_dashboards/dashboard-list/utils.js +1 -1
  35. package/dpr/components/_dashboards/dashboard-list/utils.js.map +2 -2
  36. package/dpr/components/_dashboards/dashboard-list/utils.test.ts +1 -0
  37. package/dpr/components/_dashboards/dashboard-list/utils.ts +16 -11
  38. package/dpr/components/_dashboards/dashboard-visualisation/DashboardVisualisation.js +1 -1
  39. package/dpr/components/_dashboards/dashboard-visualisation/DashboardVisualisation.js.map +2 -2
  40. package/dpr/components/_dashboards/dashboard-visualisation/DashboardVisualisation.ts +1 -1
  41. package/dpr/components/_dashboards/dashboard-visualisation/types.js +1 -1
  42. package/dpr/components/_dashboards/dashboard-visualisation/types.js.map +2 -2
  43. package/dpr/components/_dashboards/dashboard-visualisation/types.ts +8 -8
  44. package/dpr/components/_dashboards/scorecard/Scorecard.js +1 -1
  45. package/dpr/components/_dashboards/scorecard/Scorecard.js.map +2 -2
  46. package/dpr/components/_dashboards/scorecard/Scorecard.ts +8 -8
  47. package/dpr/components/_dashboards/scorecard/types.js +1 -1
  48. package/dpr/components/_dashboards/scorecard/types.js.map +2 -2
  49. package/dpr/components/_dashboards/scorecard/types.ts +12 -10
  50. package/dpr/components/_dashboards/scorecard/utils.js +1 -1
  51. package/dpr/components/_dashboards/scorecard/utils.js.map +1 -1
  52. package/dpr/components/_dashboards/scorecard/utils.test.ts +1 -0
  53. package/dpr/components/_filters/filter-input/enum.js +1 -1
  54. package/dpr/components/_filters/filter-input/enum.js.map +1 -1
  55. package/dpr/components/_filters/filter-input/filters.js +1 -1
  56. package/dpr/components/_filters/filter-input/filters.js.map +1 -1
  57. package/dpr/components/_filters/filter-input/filters.test.ts +1 -0
  58. package/dpr/components/_filters/filter-input/types.d.js +1 -1
  59. package/dpr/components/_filters/filter-input/types.d.js.map +1 -1
  60. package/dpr/components/_filters/filters-selected/utils.js +1 -1
  61. package/dpr/components/_filters/filters-selected/utils.js.map +3 -3
  62. package/dpr/components/_filters/filters-selected/utils.test.ts +7 -4
  63. package/dpr/components/_filters/filters-selected/utils.ts +1 -1
  64. package/dpr/components/_filters/filtersTypeEnum.js +1 -1
  65. package/dpr/components/_filters/filtersTypeEnum.js.map +1 -1
  66. package/dpr/components/_filters/types.d.js +1 -1
  67. package/dpr/components/_filters/types.d.js.map +2 -2
  68. package/dpr/components/_filters/types.d.ts +5 -5
  69. package/dpr/components/_filters/utils.js +1 -1
  70. package/dpr/components/_filters/utils.js.map +2 -2
  71. package/dpr/components/_filters/utils.test.ts +54 -49
  72. package/dpr/components/_filters/utils.ts +16 -20
  73. package/dpr/components/_inputs/date-input/utils.js +1 -1
  74. package/dpr/components/_inputs/date-input/utils.js.map +1 -1
  75. package/dpr/components/_inputs/date-input/utils.test.ts +1 -0
  76. package/dpr/components/_inputs/date-range/clientClass.mjs +2 -2
  77. package/dpr/components/_inputs/date-range/types.js +1 -1
  78. package/dpr/components/_inputs/date-range/types.js.map +2 -2
  79. package/dpr/components/_inputs/date-range/types.ts +2 -2
  80. package/dpr/components/_inputs/date-range/utils.js +1 -1
  81. package/dpr/components/_inputs/date-range/utils.js.map +2 -2
  82. package/dpr/components/_inputs/date-range/utils.test.ts +5 -7
  83. package/dpr/components/_inputs/date-range/utils.ts +4 -4
  84. package/dpr/components/_inputs/date-range/view.njk +1 -0
  85. package/dpr/components/_inputs/granular-date-range/types.js +1 -1
  86. package/dpr/components/_inputs/granular-date-range/types.js.map +1 -1
  87. package/dpr/components/_inputs/granular-date-range/utils.js +1 -1
  88. package/dpr/components/_inputs/granular-date-range/utils.js.map +1 -1
  89. package/dpr/components/_inputs/granular-date-range/utils.test.ts +1 -0
  90. package/dpr/components/_inputs/multi-select/utils.js +1 -1
  91. package/dpr/components/_inputs/multi-select/utils.js.map +3 -3
  92. package/dpr/components/_inputs/multi-select/utils.ts +1 -1
  93. package/dpr/components/_inputs/multi-select/utilt.test.ts +29 -14
  94. package/dpr/components/_inputs/start-end-date/utils.js +1 -1
  95. package/dpr/components/_inputs/start-end-date/utils.js.map +1 -1
  96. package/dpr/components/_inputs/start-end-date/utils.test.ts +1 -0
  97. package/dpr/components/_reports/report-actions/actionsTemplate.js +1 -1
  98. package/dpr/components/_reports/report-actions/actionsTemplate.js.map +1 -1
  99. package/dpr/components/_reports/report-actions/types.d.js +1 -1
  100. package/dpr/components/_reports/report-actions/types.d.js.map +2 -2
  101. package/dpr/components/_reports/report-actions/types.d.ts +1 -1
  102. package/dpr/components/_reports/report-actions/utils.js +1 -1
  103. package/dpr/components/_reports/report-actions/utils.js.map +1 -1
  104. package/dpr/components/_reports/report-actions/utils.test.ts +8 -4
  105. package/dpr/components/_reports/report-columns-form/types.d.js +1 -1
  106. package/dpr/components/_reports/report-columns-form/types.d.js.map +1 -1
  107. package/dpr/components/_reports/report-columns-form/utils.js +1 -1
  108. package/dpr/components/_reports/report-columns-form/utils.js.map +2 -2
  109. package/dpr/components/_reports/report-columns-form/utils.ts +1 -1
  110. package/dpr/components/_reports/report-data-table/types.d.js +1 -1
  111. package/dpr/components/_reports/report-data-table/types.d.js.map +1 -1
  112. package/dpr/components/_reports/report-data-table/utils.js +1 -1
  113. package/dpr/components/_reports/report-data-table/utils.js.map +3 -3
  114. package/dpr/components/_reports/report-data-table/utils.test.ts +15 -8
  115. package/dpr/components/_reports/report-data-table/utils.ts +20 -8
  116. package/dpr/components/_reports/report-pagination/types.d.js +1 -1
  117. package/dpr/components/_reports/report-pagination/types.d.js.map +2 -2
  118. package/dpr/components/_reports/report-pagination/types.d.ts +2 -2
  119. package/dpr/components/_reports/report-pagination/utils.js +1 -1
  120. package/dpr/components/_reports/report-pagination/utils.js.map +1 -1
  121. package/dpr/components/_reports/report-pagination/utils.test.ts +1 -0
  122. package/dpr/components/_reports/report-totals/utils.js +1 -1
  123. package/dpr/components/_reports/report-totals/utils.js.map +1 -1
  124. package/dpr/components/card-group/utils.js +1 -1
  125. package/dpr/components/card-group/utils.js.map +1 -1
  126. package/dpr/components/card-group/utils.test.ts +7 -0
  127. package/dpr/components/report-list/defaultTokenProvider.js +1 -1
  128. package/dpr/components/report-list/defaultTokenProvider.js.map +3 -3
  129. package/dpr/components/report-list/defaultTokenProvider.ts +3 -3
  130. package/dpr/components/report-list/types.d.js +1 -1
  131. package/dpr/components/report-list/types.d.js.map +1 -1
  132. package/dpr/components/report-list/utils.js +1 -1
  133. package/dpr/components/report-list/utils.js.map +2 -2
  134. package/dpr/components/report-list/utils.test.ts +6 -4
  135. package/dpr/components/report-list/utils.ts +5 -5
  136. package/dpr/components/show-more/utils.js +1 -1
  137. package/dpr/components/show-more/utils.js.map +1 -1
  138. package/dpr/components/user-reports/bookmarks/utils.js +1 -1
  139. package/dpr/components/user-reports/bookmarks/utils.js.map +3 -3
  140. package/dpr/components/user-reports/bookmarks/utils.test.ts +14 -11
  141. package/dpr/components/user-reports/bookmarks/utils.ts +26 -31
  142. package/dpr/components/user-reports/requested/utils.js +1 -1
  143. package/dpr/components/user-reports/requested/utils.js.map +3 -3
  144. package/dpr/components/user-reports/requested/utils.test.ts +4 -3
  145. package/dpr/components/user-reports/requested/utils.ts +4 -3
  146. package/dpr/components/user-reports/types.d.js +1 -1
  147. package/dpr/components/user-reports/types.d.js.map +2 -2
  148. package/dpr/components/user-reports/types.d.ts +1 -1
  149. package/dpr/components/user-reports/utils.js +1 -1
  150. package/dpr/components/user-reports/utils.js.map +3 -3
  151. package/dpr/components/user-reports/utils.test.ts +48 -47
  152. package/dpr/components/user-reports/utils.ts +51 -57
  153. package/dpr/components/user-reports/viewed/utils.js +1 -1
  154. package/dpr/components/user-reports/viewed/utils.js.map +2 -2
  155. package/dpr/components/user-reports/viewed/utils.ts +5 -4
  156. package/dpr/data/agentConfig.js +1 -1
  157. package/dpr/data/agentConfig.js.map +1 -1
  158. package/dpr/data/dashboardClient.js +1 -1
  159. package/dpr/data/dashboardClient.js.map +2 -2
  160. package/dpr/data/dashboardClient.ts +2 -2
  161. package/dpr/data/dprReportingClient.js +1 -1
  162. package/dpr/data/dprReportingClient.js.map +3 -3
  163. package/dpr/data/dprReportingClient.ts +3 -3
  164. package/dpr/data/missingReportClient.js +2 -0
  165. package/dpr/data/missingReportClient.js.map +7 -0
  166. package/dpr/{services/missingReport → data}/missingReportClient.ts +4 -4
  167. package/dpr/data/productCollectionClient.js +2 -0
  168. package/dpr/data/productCollectionClient.js.map +7 -0
  169. package/dpr/data/productCollectionClient.ts +28 -0
  170. package/dpr/data/reportDataStore.js +1 -1
  171. package/dpr/data/reportDataStore.js.map +1 -1
  172. package/dpr/data/reportingClient.js +1 -1
  173. package/dpr/data/reportingClient.js.map +3 -3
  174. package/dpr/data/reportingClient.ts +7 -9
  175. package/dpr/data/restClient.js +1 -1
  176. package/dpr/data/restClient.js.map +2 -2
  177. package/dpr/data/restClient.ts +5 -5
  178. package/dpr/data/types.d.js +1 -1
  179. package/dpr/data/types.d.js.map +2 -2
  180. package/dpr/data/types.d.ts +1 -1
  181. package/dpr/middleware/reportAuthoriser.js +1 -1
  182. package/dpr/middleware/reportAuthoriser.js.map +2 -2
  183. package/dpr/middleware/reportAuthoriser.ts +2 -2
  184. package/dpr/middleware/setUpDprResources.js +1 -1
  185. package/dpr/middleware/setUpDprResources.js.map +2 -2
  186. package/dpr/middleware/setUpDprResources.test.ts +59 -20
  187. package/dpr/middleware/setUpDprResources.ts +30 -29
  188. package/dpr/middleware/setUpNestedRoute.js +1 -1
  189. package/dpr/middleware/setUpNestedRoute.js.map +2 -2
  190. package/dpr/middleware/setUpNestedRoute.ts +1 -1
  191. package/dpr/routes/index.js +1 -1
  192. package/dpr/routes/index.js.map +2 -2
  193. package/dpr/routes/index.ts +1 -2
  194. package/dpr/routes/journeys/download-report/controller.js +1 -1
  195. package/dpr/routes/journeys/download-report/controller.js.map +3 -3
  196. package/dpr/routes/journeys/download-report/controller.ts +7 -6
  197. package/dpr/routes/journeys/download-report/request-download/form/controller.js +1 -1
  198. package/dpr/routes/journeys/download-report/request-download/form/controller.js.map +3 -3
  199. package/dpr/routes/journeys/download-report/request-download/form/controller.ts +1 -1
  200. package/dpr/routes/journeys/download-report/request-download/form/routes.js +1 -1
  201. package/dpr/routes/journeys/download-report/request-download/form/routes.js.map +1 -1
  202. package/dpr/routes/journeys/download-report/request-download/form/submitted/controller.js +1 -1
  203. package/dpr/routes/journeys/download-report/request-download/form/submitted/controller.js.map +3 -3
  204. package/dpr/routes/journeys/download-report/request-download/form/submitted/controller.ts +1 -1
  205. package/dpr/routes/journeys/download-report/request-download/form/submitted/routes.js +1 -1
  206. package/dpr/routes/journeys/download-report/request-download/form/submitted/routes.js.map +1 -1
  207. package/dpr/routes/journeys/download-report/request-download/form/submitted/tests.cy.js +1 -1
  208. package/dpr/routes/journeys/download-report/request-download/form/submitted/tests.cy.js.map +1 -1
  209. package/dpr/routes/journeys/download-report/request-download/form/tests.cy.js +1 -1
  210. package/dpr/routes/journeys/download-report/request-download/form/tests.cy.js.map +1 -1
  211. package/dpr/routes/journeys/download-report/request-download/routes.js +1 -1
  212. package/dpr/routes/journeys/download-report/request-download/routes.js.map +1 -1
  213. package/dpr/routes/journeys/download-report/request-download/service.js +1 -1
  214. package/dpr/routes/journeys/download-report/request-download/service.js.map +3 -3
  215. package/dpr/routes/journeys/download-report/request-download/service.ts +20 -8
  216. package/dpr/routes/journeys/download-report/routes.js +1 -1
  217. package/dpr/routes/journeys/download-report/routes.js.map +3 -3
  218. package/dpr/routes/journeys/download-report/routes.ts +1 -4
  219. package/dpr/routes/journeys/download-report/tests.cy.js +1 -1
  220. package/dpr/routes/journeys/download-report/tests.cy.js.map +2 -2
  221. package/dpr/routes/journeys/download-report/tests.cy.ts +4 -1
  222. package/dpr/routes/journeys/download-report/utils.js +1 -1
  223. package/dpr/routes/journeys/download-report/utils.js.map +2 -2
  224. package/dpr/routes/journeys/download-report/utils.ts +2 -4
  225. package/dpr/routes/journeys/my-reports/bookmarks/controller.js +1 -1
  226. package/dpr/routes/journeys/my-reports/bookmarks/controller.js.map +1 -1
  227. package/dpr/routes/journeys/my-reports/bookmarks/list/controller.js +1 -1
  228. package/dpr/routes/journeys/my-reports/bookmarks/list/controller.js.map +3 -3
  229. package/dpr/routes/journeys/my-reports/bookmarks/list/controller.ts +2 -2
  230. package/dpr/routes/journeys/my-reports/bookmarks/list/routes.js +1 -1
  231. package/dpr/routes/journeys/my-reports/bookmarks/list/routes.js.map +1 -1
  232. package/dpr/routes/journeys/my-reports/bookmarks/list/tests.cy.js +1 -1
  233. package/dpr/routes/journeys/my-reports/bookmarks/list/tests.cy.js.map +2 -2
  234. package/dpr/routes/journeys/my-reports/bookmarks/list/tests.cy.ts +1 -2
  235. package/dpr/routes/journeys/my-reports/bookmarks/routes.js +1 -1
  236. package/dpr/routes/journeys/my-reports/bookmarks/routes.js.map +1 -1
  237. package/dpr/routes/journeys/my-reports/bookmarks/service.js +3 -3
  238. package/dpr/routes/journeys/my-reports/bookmarks/service.js.map +3 -3
  239. package/dpr/routes/journeys/my-reports/bookmarks/service.ts +31 -18
  240. package/dpr/routes/journeys/my-reports/bookmarks/tests.cy.js +1 -1
  241. package/dpr/routes/journeys/my-reports/bookmarks/tests.cy.js.map +2 -2
  242. package/dpr/routes/journeys/my-reports/bookmarks/tests.cy.ts +26 -26
  243. package/dpr/routes/journeys/my-reports/bookmarks/utils.js +1 -1
  244. package/dpr/routes/journeys/my-reports/bookmarks/utils.js.map +3 -3
  245. package/dpr/routes/journeys/my-reports/bookmarks/utils.ts +10 -11
  246. package/dpr/routes/journeys/my-reports/recently-viewed/controller.js +1 -1
  247. package/dpr/routes/journeys/my-reports/recently-viewed/controller.js.map +1 -1
  248. package/dpr/routes/journeys/my-reports/recently-viewed/list/controller.js +1 -1
  249. package/dpr/routes/journeys/my-reports/recently-viewed/list/controller.js.map +3 -3
  250. package/dpr/routes/journeys/my-reports/recently-viewed/list/controller.ts +1 -1
  251. package/dpr/routes/journeys/my-reports/recently-viewed/list/routes.js +1 -1
  252. package/dpr/routes/journeys/my-reports/recently-viewed/list/routes.js.map +1 -1
  253. package/dpr/routes/journeys/my-reports/recently-viewed/list/tests.cy.js +1 -1
  254. package/dpr/routes/journeys/my-reports/recently-viewed/list/tests.cy.js.map +2 -2
  255. package/dpr/routes/journeys/my-reports/recently-viewed/list/tests.cy.ts +7 -4
  256. package/dpr/routes/journeys/my-reports/recently-viewed/routes.js +1 -1
  257. package/dpr/routes/journeys/my-reports/recently-viewed/routes.js.map +1 -1
  258. package/dpr/routes/journeys/my-reports/recently-viewed/service.js +1 -1
  259. package/dpr/routes/journeys/my-reports/recently-viewed/service.js.map +3 -3
  260. package/dpr/routes/journeys/my-reports/recently-viewed/service.ts +0 -2
  261. package/dpr/routes/journeys/my-reports/requested-reports/controller.js +1 -1
  262. package/dpr/routes/journeys/my-reports/requested-reports/controller.js.map +1 -1
  263. package/dpr/routes/journeys/my-reports/requested-reports/list/controller.js +1 -1
  264. package/dpr/routes/journeys/my-reports/requested-reports/list/controller.js.map +3 -3
  265. package/dpr/routes/journeys/my-reports/requested-reports/list/controller.ts +1 -1
  266. package/dpr/routes/journeys/my-reports/requested-reports/list/routes.js +1 -1
  267. package/dpr/routes/journeys/my-reports/requested-reports/list/routes.js.map +1 -1
  268. package/dpr/routes/journeys/my-reports/requested-reports/list/tests.cy.js +1 -1
  269. package/dpr/routes/journeys/my-reports/requested-reports/list/tests.cy.js.map +1 -1
  270. package/dpr/routes/journeys/my-reports/requested-reports/routes.js +1 -1
  271. package/dpr/routes/journeys/my-reports/requested-reports/routes.js.map +1 -1
  272. package/dpr/routes/journeys/my-reports/requested-reports/service.js +1 -1
  273. package/dpr/routes/journeys/my-reports/requested-reports/service.js.map +3 -3
  274. package/dpr/routes/journeys/my-reports/requested-reports/service.ts +25 -17
  275. package/dpr/routes/journeys/my-reports/routes.js +1 -1
  276. package/dpr/routes/journeys/my-reports/routes.js.map +3 -3
  277. package/dpr/routes/journeys/my-reports/routes.ts +0 -3
  278. package/dpr/routes/journeys/product-collection/routes.js +1 -1
  279. package/dpr/routes/journeys/product-collection/routes.js.map +1 -1
  280. package/dpr/routes/journeys/product-collection/selected/controller.js +1 -1
  281. package/dpr/routes/journeys/product-collection/selected/controller.js.map +1 -1
  282. package/dpr/routes/journeys/product-collection/selected/routes.js +1 -1
  283. package/dpr/routes/journeys/product-collection/selected/routes.js.map +1 -1
  284. package/dpr/routes/journeys/product-collection/selected/tests.cy.js +1 -1
  285. package/dpr/routes/journeys/product-collection/selected/tests.cy.js.map +2 -2
  286. package/dpr/routes/journeys/product-collection/selected/tests.cy.ts +6 -4
  287. package/dpr/routes/journeys/product-collection/selected/validation.js +1 -1
  288. package/dpr/routes/journeys/product-collection/selected/validation.js.map +1 -1
  289. package/dpr/routes/journeys/request-missing-report/form/controller.js +1 -1
  290. package/dpr/routes/journeys/request-missing-report/form/controller.js.map +3 -3
  291. package/dpr/routes/journeys/request-missing-report/form/controller.ts +21 -19
  292. package/dpr/routes/journeys/request-missing-report/form/routes.js +1 -1
  293. package/dpr/routes/journeys/request-missing-report/form/routes.js.map +1 -1
  294. package/dpr/routes/journeys/request-missing-report/form/tests.cy.js +1 -1
  295. package/dpr/routes/journeys/request-missing-report/form/tests.cy.js.map +1 -1
  296. package/dpr/routes/journeys/request-missing-report/form/validation.js +1 -1
  297. package/dpr/routes/journeys/request-missing-report/form/validation.js.map +1 -1
  298. package/dpr/routes/journeys/request-missing-report/routes.js +1 -1
  299. package/dpr/routes/journeys/request-missing-report/routes.js.map +1 -1
  300. package/dpr/routes/journeys/request-missing-report/submitted/controller.js +1 -1
  301. package/dpr/routes/journeys/request-missing-report/submitted/controller.js.map +1 -1
  302. package/dpr/routes/journeys/request-missing-report/submitted/routes.js +1 -1
  303. package/dpr/routes/journeys/request-missing-report/submitted/routes.js.map +1 -1
  304. package/dpr/routes/journeys/request-missing-report/submitted/tests.cy.js +1 -1
  305. package/dpr/routes/journeys/request-missing-report/submitted/tests.cy.js.map +1 -1
  306. package/dpr/routes/journeys/request-missing-report/tests.cy.js +1 -1
  307. package/dpr/routes/journeys/request-missing-report/tests.cy.js.map +2 -2
  308. package/dpr/routes/journeys/request-missing-report/tests.cy.ts +1 -1
  309. package/dpr/routes/journeys/request-report/controller.js +1 -1
  310. package/dpr/routes/journeys/request-report/controller.js.map +3 -3
  311. package/dpr/routes/journeys/request-report/controller.ts +1 -1
  312. package/dpr/routes/journeys/request-report/filters/controller.js +1 -1
  313. package/dpr/routes/journeys/request-report/filters/controller.js.map +3 -3
  314. package/dpr/routes/journeys/request-report/filters/controller.ts +7 -8
  315. package/dpr/routes/journeys/request-report/filters/routes.js +1 -1
  316. package/dpr/routes/journeys/request-report/filters/routes.js.map +1 -1
  317. package/dpr/routes/journeys/request-report/filters/tests.cy.js +1 -1
  318. package/dpr/routes/journeys/request-report/filters/tests.cy.js.map +1 -1
  319. package/dpr/routes/journeys/request-report/filters/utils.js +1 -1
  320. package/dpr/routes/journeys/request-report/filters/utils.js.map +3 -3
  321. package/dpr/routes/journeys/request-report/filters/utils.ts +38 -23
  322. package/dpr/routes/journeys/request-report/filters/view.njk +2 -1
  323. package/dpr/routes/journeys/request-report/routes.js +1 -1
  324. package/dpr/routes/journeys/request-report/routes.js.map +2 -2
  325. package/dpr/routes/journeys/request-report/routes.ts +2 -2
  326. package/dpr/routes/journeys/request-report/status/controller.js +1 -1
  327. package/dpr/routes/journeys/request-report/status/controller.js.map +3 -3
  328. package/dpr/routes/journeys/request-report/status/controller.ts +4 -4
  329. package/dpr/routes/journeys/request-report/status/routes.js +1 -1
  330. package/dpr/routes/journeys/request-report/status/routes.js.map +1 -1
  331. package/dpr/routes/journeys/request-report/status/tests.cy.js +1 -1
  332. package/dpr/routes/journeys/request-report/status/tests.cy.js.map +2 -2
  333. package/dpr/routes/journeys/request-report/status/tests.cy.ts +9 -4
  334. package/dpr/routes/journeys/request-report/status/utils.js +1 -1
  335. package/dpr/routes/journeys/request-report/status/utils.js.map +3 -3
  336. package/dpr/routes/journeys/request-report/status/utils.ts +10 -13
  337. package/dpr/routes/journeys/request-report/tests.cy.js +1 -1
  338. package/dpr/routes/journeys/request-report/tests.cy.js.map +2 -2
  339. package/dpr/routes/journeys/request-report/tests.cy.ts +14 -11
  340. package/dpr/routes/journeys/routes.js +1 -1
  341. package/dpr/routes/journeys/routes.js.map +1 -1
  342. package/dpr/routes/journeys/view-report/async/controller.js +1 -1
  343. package/dpr/routes/journeys/view-report/async/controller.js.map +3 -3
  344. package/dpr/routes/journeys/view-report/async/controller.ts +4 -4
  345. package/dpr/routes/journeys/view-report/async/dashboard/controller.js +1 -1
  346. package/dpr/routes/journeys/view-report/async/dashboard/controller.js.map +3 -3
  347. package/dpr/routes/journeys/view-report/async/dashboard/controller.ts +4 -4
  348. package/dpr/routes/journeys/view-report/async/dashboard/routes.js +1 -1
  349. package/dpr/routes/journeys/view-report/async/dashboard/routes.js.map +1 -1
  350. package/dpr/routes/journeys/view-report/async/dashboard/tests.cy.js +1 -1
  351. package/dpr/routes/journeys/view-report/async/dashboard/tests.cy.js.map +2 -2
  352. package/dpr/routes/journeys/view-report/async/dashboard/tests.cy.ts +2 -2
  353. package/dpr/routes/journeys/view-report/async/dashboard/utils.js +1 -1
  354. package/dpr/routes/journeys/view-report/async/dashboard/utils.js.map +3 -3
  355. package/dpr/routes/journeys/view-report/async/dashboard/utils.ts +6 -8
  356. package/dpr/routes/journeys/view-report/async/report/controller.js +1 -1
  357. package/dpr/routes/journeys/view-report/async/report/controller.js.map +3 -3
  358. package/dpr/routes/journeys/view-report/async/report/controller.ts +5 -5
  359. package/dpr/routes/journeys/view-report/async/report/routes.js +1 -1
  360. package/dpr/routes/journeys/view-report/async/report/routes.js.map +1 -1
  361. package/dpr/routes/journeys/view-report/async/report/tests.cy.js +1 -1
  362. package/dpr/routes/journeys/view-report/async/report/tests.cy.js.map +2 -2
  363. package/dpr/routes/journeys/view-report/async/report/tests.cy.ts +9 -7
  364. package/dpr/routes/journeys/view-report/async/report/types.js +1 -1
  365. package/dpr/routes/journeys/view-report/async/report/types.js.map +2 -2
  366. package/dpr/routes/journeys/view-report/async/report/types.ts +8 -8
  367. package/dpr/routes/journeys/view-report/async/report/utils.js +1 -1
  368. package/dpr/routes/journeys/view-report/async/report/utils.js.map +2 -2
  369. package/dpr/routes/journeys/view-report/async/report/utils.ts +16 -18
  370. package/dpr/routes/journeys/view-report/async/routes.js +1 -1
  371. package/dpr/routes/journeys/view-report/async/routes.js.map +1 -1
  372. package/dpr/routes/journeys/view-report/controller.js +1 -1
  373. package/dpr/routes/journeys/view-report/controller.js.map +3 -3
  374. package/dpr/routes/journeys/view-report/controller.ts +1 -1
  375. package/dpr/routes/journeys/view-report/routes.js +1 -1
  376. package/dpr/routes/journeys/view-report/routes.js.map +2 -2
  377. package/dpr/routes/journeys/view-report/routes.ts +6 -3
  378. package/dpr/routes/journeys/view-report/sync/load-report/controller.js +1 -1
  379. package/dpr/routes/journeys/view-report/sync/load-report/controller.js.map +2 -2
  380. package/dpr/routes/journeys/view-report/sync/load-report/controller.ts +1 -1
  381. package/dpr/routes/journeys/view-report/sync/load-report/routes.js +1 -1
  382. package/dpr/routes/journeys/view-report/sync/load-report/routes.js.map +1 -1
  383. package/dpr/routes/journeys/view-report/sync/report/controller.js +1 -1
  384. package/dpr/routes/journeys/view-report/sync/report/controller.js.map +3 -3
  385. package/dpr/routes/journeys/view-report/sync/report/controller.ts +6 -6
  386. package/dpr/routes/journeys/view-report/sync/report/routes.js +1 -1
  387. package/dpr/routes/journeys/view-report/sync/report/routes.js.map +1 -1
  388. package/dpr/routes/journeys/view-report/sync/report/utils.js +1 -1
  389. package/dpr/routes/journeys/view-report/sync/report/utils.js.map +3 -3
  390. package/dpr/routes/journeys/view-report/sync/report/utils.ts +29 -19
  391. package/dpr/routes/journeys/view-report/sync/routes.js +1 -1
  392. package/dpr/routes/journeys/view-report/sync/routes.js.map +1 -1
  393. package/dpr/routes/journeys/view-report/sync/tests.cy.js +1 -1
  394. package/dpr/routes/journeys/view-report/sync/tests.cy.js.map +2 -2
  395. package/dpr/routes/journeys/view-report/sync/tests.cy.ts +1 -1
  396. package/dpr/routes/journeys/view-report/utils.js +1 -1
  397. package/dpr/routes/journeys/view-report/utils.js.map +3 -3
  398. package/dpr/routes/journeys/view-report/utils.ts +22 -12
  399. package/dpr/services/dashboardService.js +1 -1
  400. package/dpr/services/dashboardService.js.map +3 -3
  401. package/dpr/services/dashboardService.ts +1 -3
  402. package/dpr/services/defaultFilterValuesService.js +1 -1
  403. package/dpr/services/defaultFilterValuesService.js.map +3 -3
  404. package/dpr/services/defaultFilterValuesService.ts +34 -15
  405. package/dpr/services/index.js +1 -1
  406. package/dpr/services/index.js.map +1 -1
  407. package/dpr/services/missingReport/missingReportService.js +2 -0
  408. package/dpr/services/missingReport/missingReportService.js.map +7 -0
  409. package/dpr/services/missingReport/missingReportService.ts +26 -0
  410. package/dpr/services/productCollection/productCollectionService.js +1 -1
  411. package/dpr/services/productCollection/productCollectionService.js.map +3 -3
  412. package/dpr/services/productCollection/productCollectionService.ts +19 -14
  413. package/dpr/services/productCollection/productCollectionStoreService.js +1 -1
  414. package/dpr/services/productCollection/productCollectionStoreService.js.map +3 -3
  415. package/dpr/services/productCollection/productCollectionStoreService.ts +9 -3
  416. package/dpr/services/reportStoreService.js +1 -1
  417. package/dpr/services/reportStoreService.js.map +2 -2
  418. package/dpr/services/reportStoreService.ts +1 -1
  419. package/dpr/services/reportingService.js +1 -1
  420. package/dpr/services/reportingService.js.map +3 -3
  421. package/dpr/services/reportingService.ts +1 -3
  422. package/dpr/setUpNunjucksFilters.js +1 -1
  423. package/dpr/setUpNunjucksFilters.js.map +1 -1
  424. package/dpr/types/AsyncReportUtils.js +1 -1
  425. package/dpr/types/AsyncReportUtils.js.map +2 -2
  426. package/dpr/types/AsyncReportUtils.ts +2 -1
  427. package/dpr/types/Bookmark.js +1 -1
  428. package/dpr/types/Bookmark.js.map +2 -2
  429. package/dpr/types/Bookmark.ts +9 -3
  430. package/dpr/types/Charts.js +1 -1
  431. package/dpr/types/Charts.js.map +1 -1
  432. package/dpr/types/Download.js +1 -1
  433. package/dpr/types/Download.js.map +1 -1
  434. package/dpr/types/DprConfig.js +1 -1
  435. package/dpr/types/DprConfig.js.map +2 -2
  436. package/dpr/types/DprConfig.ts +8 -0
  437. package/dpr/types/DprUser.js +1 -1
  438. package/dpr/types/DprUser.js.map +2 -2
  439. package/dpr/types/DprUser.ts +2 -2
  440. package/dpr/types/EmbeddedReportUtils.js +1 -1
  441. package/dpr/types/EmbeddedReportUtils.js.map +1 -1
  442. package/dpr/types/ExecutionData.d.js +1 -1
  443. package/dpr/types/ExecutionData.d.js.map +2 -2
  444. package/dpr/types/ExecutionData.d.ts +2 -2
  445. package/dpr/types/Metrics.js +1 -1
  446. package/dpr/types/Metrics.js.map +2 -2
  447. package/dpr/types/Metrics.ts +1 -1
  448. package/dpr/types/ReportQuery.js +1 -1
  449. package/dpr/types/ReportQuery.js.map +2 -2
  450. package/dpr/types/ReportQuery.ts +15 -11
  451. package/dpr/types/ReportStore.js +1 -1
  452. package/dpr/types/ReportStore.js.map +1 -1
  453. package/dpr/types/Services.d.js +1 -1
  454. package/dpr/types/Services.d.js.map +2 -2
  455. package/dpr/types/Services.d.ts +8 -8
  456. package/dpr/types/Templates.d.js +1 -1
  457. package/dpr/types/Templates.d.js.map +1 -1
  458. package/dpr/types/UserReports.js +1 -1
  459. package/dpr/types/UserReports.js.map +2 -2
  460. package/dpr/types/UserReports.ts +29 -15
  461. package/dpr/types/api.d.js +1 -1
  462. package/dpr/types/api.d.js.map +1 -1
  463. package/dpr/types/index.d.js +1 -1
  464. package/dpr/types/index.d.js.map +2 -2
  465. package/dpr/types/index.d.ts +1 -1
  466. package/dpr/utils/CollatedSummaryBuilder/CollatedSummaryBuilder.js +1 -1
  467. package/dpr/utils/CollatedSummaryBuilder/CollatedSummaryBuilder.js.map +1 -1
  468. package/dpr/utils/CollatedSummaryBuilder/CollatedSummaryBuilder.test.ts +2 -0
  469. package/dpr/utils/CreateDprServices.js +2 -0
  470. package/dpr/utils/CreateDprServices.js.map +7 -0
  471. package/dpr/utils/CreateDprServices.ts +73 -0
  472. package/dpr/utils/DataTableBuilder/DataTableBuilder.js +1 -1
  473. package/dpr/utils/DataTableBuilder/DataTableBuilder.js.map +1 -1
  474. package/dpr/utils/DataTableBuilder/DataTableBuilder.test.ts +10 -0
  475. package/dpr/utils/DataTableBuilder/types.d.js +1 -1
  476. package/dpr/utils/DataTableBuilder/types.d.js.map +2 -2
  477. package/dpr/utils/DataTableBuilder/types.d.ts +3 -3
  478. package/dpr/utils/DateMapper/DateMapper.js +1 -1
  479. package/dpr/utils/DateMapper/DateMapper.js.map +2 -2
  480. package/dpr/utils/DateMapper/DateMapper.test.ts +22 -9
  481. package/dpr/utils/DateMapper/DateMapper.ts +9 -11
  482. package/dpr/utils/DateMapper/types.d.js +1 -1
  483. package/dpr/utils/DateMapper/types.d.js.map +1 -1
  484. package/dpr/utils/ErrorHandler.js +2 -0
  485. package/dpr/utils/ErrorHandler.js.map +7 -0
  486. package/dpr/utils/ErrorHandler.ts +85 -0
  487. package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.js +1 -1
  488. package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.js.map +2 -2
  489. package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.test.ts +13 -2
  490. package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.ts +3 -3
  491. package/dpr/utils/ParentChildDataTableBuilder/types.d.js +1 -1
  492. package/dpr/utils/ParentChildDataTableBuilder/types.d.js.map +1 -1
  493. package/dpr/utils/Personalisation/personalisationUtils.js +1 -1
  494. package/dpr/utils/Personalisation/personalisationUtils.js.map +3 -3
  495. package/dpr/utils/Personalisation/personalisationUtils.ts +6 -2
  496. package/dpr/utils/Personalisation/types.d.js +1 -1
  497. package/dpr/utils/Personalisation/types.d.js.map +1 -1
  498. package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.js +1 -1
  499. package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.js.map +2 -2
  500. package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.test.ts +5 -0
  501. package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.ts +1 -1
  502. package/dpr/utils/SectionedDataTableBuilder/types.d.js +1 -1
  503. package/dpr/utils/SectionedDataTableBuilder/types.d.js.map +1 -1
  504. package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.js +1 -1
  505. package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.js.map +2 -2
  506. package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.test.ts +7 -4
  507. package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.ts +3 -3
  508. package/dpr/utils/SummaryDataTableBuilder/SummaryDataTableBuilder.js +1 -1
  509. package/dpr/utils/SummaryDataTableBuilder/SummaryDataTableBuilder.js.map +1 -1
  510. package/dpr/utils/SummaryDataTableBuilder/SummaryDataTableBuilder.test.ts +1 -0
  511. package/dpr/utils/UserStoreItemBuilder.js +1 -1
  512. package/dpr/utils/UserStoreItemBuilder.js.map +2 -2
  513. package/dpr/utils/UserStoreItemBuilder.ts +19 -32
  514. package/dpr/utils/arrayUtils.js +1 -1
  515. package/dpr/utils/arrayUtils.js.map +1 -1
  516. package/dpr/utils/datasetHelper.js +1 -1
  517. package/dpr/utils/datasetHelper.js.map +2 -2
  518. package/dpr/utils/datasetHelper.test.ts +21 -33
  519. package/dpr/utils/datasetHelper.ts +12 -17
  520. package/dpr/utils/definitionUtils.js +1 -1
  521. package/dpr/utils/definitionUtils.js.map +3 -3
  522. package/dpr/utils/definitionUtils.ts +14 -3
  523. package/dpr/utils/index.js +1 -1
  524. package/dpr/utils/index.js.map +1 -1
  525. package/dpr/utils/indexedAccesHelper.js +2 -0
  526. package/dpr/utils/indexedAccesHelper.js.map +7 -0
  527. package/dpr/utils/indexedAccesHelper.ts +24 -0
  528. package/dpr/utils/localsHelper.js +1 -1
  529. package/dpr/utils/localsHelper.js.map +2 -2
  530. package/dpr/utils/localsHelper.ts +8 -8
  531. package/dpr/utils/logger.js +1 -1
  532. package/dpr/utils/logger.js.map +2 -2
  533. package/dpr/utils/logger.ts +1 -1
  534. package/dpr/utils/reportListsHelper.js +1 -1
  535. package/dpr/utils/reportListsHelper.js.map +1 -1
  536. package/dpr/utils/reportStoreHelper.js +1 -1
  537. package/dpr/utils/reportStoreHelper.js.map +1 -1
  538. package/dpr/utils/reportStoreHelper.test.ts +3 -2
  539. package/dpr/utils/requestStatusHelper.js +1 -1
  540. package/dpr/utils/requestStatusHelper.js.map +3 -3
  541. package/dpr/utils/requestStatusHelper.ts +29 -42
  542. package/dpr/utils/sanitisedError.js +1 -1
  543. package/dpr/utils/sanitisedError.js.map +2 -2
  544. package/dpr/utils/sanitisedError.ts +1 -1
  545. package/dpr/utils/urlHelper.js +1 -1
  546. package/dpr/utils/urlHelper.js.map +2 -2
  547. package/dpr/utils/urlHelper.ts +4 -4
  548. package/dpr/validation/validate.js +1 -1
  549. package/dpr/validation/validate.js.map +2 -2
  550. package/dpr/validation/validate.ts +2 -2
  551. package/package.json +4 -2
  552. package/dpr/components/error-summary/utils.js +0 -2
  553. package/dpr/components/error-summary/utils.js.map +0 -7
  554. package/dpr/components/error-summary/utils.test.ts +0 -54
  555. package/dpr/components/error-summary/utils.ts +0 -65
  556. package/dpr/services/missingReport/missingReportClient.js +0 -2
  557. package/dpr/services/missingReport/missingReportClient.js.map +0 -7
  558. package/dpr/utils/ReportStoreServiceUtils.js +0 -2
  559. package/dpr/utils/ReportStoreServiceUtils.js.map +0 -7
  560. 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,_=Object.prototype.hasOwnProperty;var z=(e,t)=>{for(var r in t)g(e,r,{get:t[r],enumerable:!0})},T=(e,t,r,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of J(t))!_.call(e,i)&&i!==r&&g(e,i,{get:()=>t[i],enumerable:!(a=j(t,i))||a.enumerable});return e};var h=(e,t,r)=>(r=e!=null?$(L(e)):{},T(t||!e||!e.__esModule?g(r,"default",{value:e,enumerable:!0}):r,e)),G=e=>T(g({},"__esModule",{value:!0}),e);var te={};z(te,{cancelRequest:()=>C,default:()=>ee,getDefintionByType:()=>Q,getFiltersFromReqBody:()=>k,renderRequest:()=>N,request:()=>B,updateStore:()=>O});module.exports=G(te);var x=h(require("../../../../components/_async/async-filters-form/utils")),y=h(require("../../../../utils/localsHelper")),U=h(require("../../../../components/_filters/utils")),q=require("../../../../utils/reportStoreHelper"),P=h(require("../../../../utils/UserStoreItemBuilder")),m=require("../../../../types/UserReports"),b=h(require("../../../../utils/Personalisation/personalisationUtils")),V=require("../../../../components/_filters/filtersTypeEnum");const O=async({req:e,res:t,services:r,queryData:a,executionData:i,childExecutionData:o})=>{const{search:p,id:n,type:s}=e.body,{dprUser:c,definitionsPath:d,dpdPathFromQuery:l}=y.default.getValues(t);await(0,q.removeDuplicates)({storeService:r.requestedReportService,userId:c.id,id:n,search:p}),await(0,q.removeDuplicates)({storeService:r.recentlyViewedService,userId:c.id,id:n,search:p});const u=e.body,R={type:u.type,reportId:u.reportId,reportName:u.reportName,description:u.description,id:u.id,name:u.name};let f;switch(s){case m.ReportType.REPORT:f=new P.default(R,u).addExecutionData(i).addChildExecutionData(o).addFilters(a?.filterData).addSortData(a?.sortData).addDefinitionsPath(d,l).addRequestUrls(e).addQuery(a).addStatus(m.RequestStatus.SUBMITTED).addTimestamp().build();break;case m.ReportType.DASHBOARD:{f=new P.default(R,u).addExecutionData(i).addChildExecutionData(o).addFilters(a?.filterData).addDefinitionsPath(d,l).addRequestUrls(e).addQuery(a).addStatus(m.RequestStatus.SUBMITTED).addTimestamp().addMetrics(JSON.parse(e.body.sections)).build();break}default:break}await r.requestedReportService.addReport(c.id,f)};async function K(e,t,r,a,i,o){return Promise.all(e.map(p=>t.requestAsyncReport(r,a,p.id,{...i.query,dataProductDefinitionsPath:o}).then(n=>{const{executionId:s,tableId:c}=n;return{executionId:s,tableId:c,variantId:p.id}})))}const W=async({req:e,res:t,token:r,dashboardService:a,reportingService:i})=>{const{definitionsPath:o,dpdPathFromQuery:p}=y.default.getValues(t),{reportId:n,id:s,type:c}=e.body;let d,l,u,R,f,D=[];c===m.ReportType.REPORT&&(f=await i.getDefinition(r,n,s,o),d=f?f.variant.specification?.fields:[],l=x.default.setQueryFromFilters(e,d),{executionId:u,tableId:R}=await i.requestAsyncReport(r,n,s,{...l.query,dataProductDefinitionsPath:o}),D=f.variant.childVariants??[]),c===m.ReportType.DASHBOARD&&(f=await a.getDefinition(r,n,s,o),d=f?f.filterFields:[],l=x.default.setQueryFromFilters(e,d),{executionId:u,tableId:R}=await a.requestAsyncDashboard(r,n,s,{...l.query,dataProductDefinitionsPath:o}));const S=await K(D,i,r,n,l,o);return{executionData:{executionId:u,tableId:R,...p&&{dataProductDefinitionsPath:o}},childExecutionData:S,queryData:l}},X=async({token:e,reportId:t,definitionPath:r,services:a,definition:i})=>{const n=(await a.reportingService.getDefinitions(e,r)).find(u=>u.id===t).name,{name:s,description:c,sections:d,filterFields:l}=i;return{reportName:n,name:s,description:c,sections:d||[],fields:l}},Y=async e=>({definition:e,reportName:e.name,name:e.variant.name,description:e.variant.description||e.description,template:e.variant.specification,fields:e?.variant?.specification?.fields,interactive:e?.variant?.interactive}),Q=async(e,t,r,a)=>{const{token:i,definitionsPath:o}=y.default.getValues(t),{reportId:p,id:n,variantId:s,type:c}=e.params;return await(c===m.ReportType.REPORT?a.reportingService:a.dashboardService).getDefinition(i,p,s||n,o)},Z=async(e,t,r,a,i,o)=>{const{reportId:p,id:n}=e.params;let s=await x.default.renderFilters(r,a);s.filters=b.default.setUserContextDefaults(t,s.filters);const c=await i.defaultFilterValuesService.get(o,p,n,V.FiltersType.REQUEST);return c&&(s=b.default.setFilterValuesFromSavedDefaults(s.filters,s.sortBy,c)),s.filters=U.default.setFilterValuesFromRequest(s.filters,e),{filtersData:s,defaultFilterValues:c}},B=async({req:e,res:t,services:r})=>{const{token:a}=y.default.getValues(t),i={req:e,res:t,token:a},{executionData:o,queryData:p,childExecutionData:n}=await W({...i,dashboardService:r.dashboardService,reportingService:r.reportingService});return o&&await O({req:e,res:t,services:r,queryData:p,executionData:o,childExecutionData:n}),o},C=async({req:e,res:t,services:r})=>{const{token:a,dprUser:i,definitionsPath:o}=y.default.getValues(t),{reportId:p,id:n,executionId:s,type:c}=e.params;let d;c===m.ReportType.REPORT&&(d=r.reportingService),c===m.ReportType.DASHBOARD&&(d=r.dashboardService);const l=await d.cancelAsyncRequest(a,p,n,s,o);l&&l.cancellationSucceeded&&await r.requestedReportService.updateStatus(s,i.id,m.RequestStatus.ABORTED)},N=async({req:e,res:t,services:r,next:a})=>{try{const{token:i,csrfToken:o,definitionsPath:p,dpdPathFromQuery:n,dprUser:s}=y.default.getValues(t),{reportId:c,type:d,id:l}=e.params,{definition:u}=t.locals,R=e.query.defaultsSaved,f={token:i,reportId:c,definitionPath:p,services:r};let D,S,v,H,F,A,E,w,I;d===m.ReportType.REPORT&&({name:D,reportName:S,description:v,fields:F,interactive:E}=await Y(u)),d===m.ReportType.DASHBOARD&&({name:D,reportName:S,description:v,sections:A,fields:F}=await X({...f,definition:u})),F&&({filtersData:w,defaultFilterValues:I}=await Z(e,t,F,E,r,s.id));const M={reportName:S,name:D,description:v,reportId:c,id:l,...n&&{definitionPath:p},csrfToken:o,template:H,sections:A,hasDefaults:I?.length>0,defaultsSaved:R,type:d};return{title:`Request ${d}`,filtersDescription:`Customise your ${d} using the filters below and submit your request.`,filtersData:w,reportData:M}}catch(i){return a(i),!1}},k=e=>Object.keys(e.body).filter(t=>t.includes("filters.")).filter(t=>!!e.body[t]).map(t=>({name:t,value:e.body[t]}));var ee={request:B,cancelRequest:C,renderRequest:N,getFiltersFromReqBody:k,getDefintionByType:Q};0&&(module.exports={cancelRequest,getDefintionByType,getFiltersFromReqBody,renderRequest,request,updateStore});
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": "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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", "csrfToken", "defaultsSaved", "definitionApiArgs", "template", "error", "attr"]
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: SetQueryFromFiltersResult,
109
- dataProductDefinitionsPath: string,
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: SetQueryFromFiltersResult
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 ? definition.variant.specification?.fields : []
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 ? definition.filterFields : []
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.name
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, next: NextFunction, services: Services) => {
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
- const defaultFilterValues = await services.defaultFilterValuesService.get(userId, reportId, id, FiltersType.REQUEST)
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.cancellationSucceeded) {
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
- }: AsyncReportUtilsParams): Promise<RequestDataResult | boolean> => {
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.defaultsSaved
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
- ;({ filtersData, defaultFilterValues } = await getFilterData(req, res, fields, interactive, services, dprUser.id))
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 {
@@ -33,6 +33,7 @@
33
33
  sortBy: filtersData.sortBy,
34
34
  data: reportData,
35
35
  endpoint: postEndpoint,
36
- type: type
36
+ type: type,
37
+ saveDefaultsEnabled: saveDefaultsEnabled
37
38
  }) }}
38
39
  {% endblock %}
@@ -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.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": "6iBAAA,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,aAAa,uBAAuBC,CAAI,IAAIC,CAAQ,IAAIC,CAAE,UAAU,CACjG,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,aAAa,uBAAuBC,CAAI,IAAIC,CAAQ,IAAIC,CAAE,IAAIC,CAAW,SAAS,CAC/G,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",
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.nestedBaseUrl}/dpr/request-report/${type}/${reportId}/${id}/filters`)
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.nestedBaseUrl}/dpr/request-report/${type}/${reportId}/${id}/${executionId}/status`)
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 h=Object.create;var i=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var v=Object.getPrototypeOf,b=Object.prototype.hasOwnProperty;var R=(r,e)=>{for(var t in e)i(r,t,{get:e[t],enumerable:!0})},c=(r,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of m(e))!b.call(r,s)&&s!==t&&i(r,s,{get:()=>e[s],enumerable:!(o=p(e,s))||o.enumerable});return r};var a=(r,e,t)=>(t=r!=null?h(v(r)):{},c(e||!r||!r.__esModule?i(t,"default",{value:r,enumerable:!0}):t,r)),f=r=>c(i({},"__esModule",{value:!0}),r);var g={};R(g,{RequestStatusController:()=>l,default:()=>E});module.exports=f(g);var u=a(require("./utils")),d=a(require("../filters/utils")),y=a(require("../../../../components/user-reports/requested/utils")),n=a(require("../../../../components/error-summary/utils"));class l{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=n.default.handleError(s),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=n.default.handleError(s),o()}};this.layoutPath=e,this.services=t}}var E=l;0&&(module.exports={RequestStatusController});
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 ErrorSummaryUtils from '../../../../components/error-summary/utils'\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 = ErrorSummaryUtils.handleError(error)\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 = ErrorSummaryUtils.handleError(error)\n next()\n }\n }\n}\n\nexport { RequestStatusController }\nexport default RequestStatusController\n"],
5
- "mappings": "6iBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,6BAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAEA,IAAAK,EAA8B,sBAC9BA,EAA8B,+BAC9BA,EAAkC,kEAClCA,EAA8B,yDAE9B,MAAMH,CAAwB,CAK5B,YAAYI,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,EAAAM,QAAkB,YAAYD,CAAK,EACpDH,EAAK,CACP,CACF,EAGA,UAAuB,MAAOF,EAAKC,EAAKC,IAAS,CAC/C,GAAI,CACF,MAAMK,EAAW,MAAM,EAAAC,QAAsB,iBAAiB,CAAE,IAAAR,EAAK,IAAAC,EAAK,SAAU,KAAK,QAAS,CAAC,EACnGA,EAAI,KAAK,CAAE,OAAQM,EAAS,MAAO,CAAC,CACtC,MAAgB,CACdN,EAAI,KAAK,CAAE,OAAQ,QAAS,CAAC,CAC/B,CACF,EAEA,YAAyB,MAAOD,EAAKC,EAAKC,IAAS,CACjD,GAAI,CACF,MAAM,EAAAO,QAAkB,cAAc,CACpC,IAAAT,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,EAAAM,QAAkB,YAAYD,CAAK,EACpDH,EAAK,CACP,CACF,EAjDE,KAAK,WAAaJ,EAClB,KAAK,SAAWC,CAClB,CAgDF,CAGA,IAAOJ,EAAQD",
6
- "names": ["controller_exports", "__export", "RequestStatusController", "controller_default", "__toCommonJS", "import_utils", "layoutPath", "services", "req", "res", "next", "pollingRenderData", "AsyncPollingUtils", "error", "ErrorSummaryUtils", "response", "AsyncRequestListUtils", "AsyncRequestUtils"]
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 ErrorSummaryUtils from '../../../../components/error-summary/utils'
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 = ErrorSummaryUtils.handleError(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, next) => {
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 = ErrorSummaryUtils.handleError(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": "6iBAAA,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",
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 n=Object.create;var u=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var a=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 o of a(i))!b.call(e,o)&&o!==s&&u(e,o,{get:()=>i[o],enumerable:!(t=y(i,o))||t.enumerable});return e};var R=(e,i,s)=>(s=e!=null?n(r(e)):{},h(i||!e||!e.__esModule?u(s,"default",{value:e,enumerable:!0}):s,e));var c=require("cypress-tests/cypressUtils"),d=R(require("dayjs")),l=require("test-app/routes/integrationTests/redisStateTestUtils");context("Request status",()=>{const e="/embedded/platform/";beforeEach(()=>{(0,c.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,c.checkA11y)(),cy.task("stubReportsPickedStatus"),cy.findByText(/picked/i).should("be.visible"),(0,c.checkA11y)(),cy.task("stubReportsStartedStatus"),cy.findByText(/started/i).should("be.visible"),(0,c.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,c.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,d.default)(s.body.requestedReports[0].timestamp.requested).add(-1,"days").toDate(),(0,l.setRedisState)(t)}),cy.findByText(/Request taking too long/).should("be.visible"),(0,c.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()})})})});
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