@ministryofjustice/hmpps-digital-prison-reporting-frontend 4.19.0 → 4.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/dpr/components/_async/async-polling/clientClass.mjs +0 -22
  2. package/dpr/components/_async/async-polling/view.njk +11 -8
  3. package/dpr/components/_catalogue/catalogue-list/utils.js +1 -1
  4. package/dpr/components/_catalogue/catalogue-list/utils.js.map +3 -3
  5. package/dpr/components/_catalogue/catalogue-list/utils.ts +50 -57
  6. package/dpr/components/_sync/sync-load/view.njk +1 -1
  7. package/dpr/components/user-reports/utils.js +1 -1
  8. package/dpr/components/user-reports/utils.js.map +2 -2
  9. package/dpr/components/user-reports/utils.ts +4 -4
  10. package/dpr/data/dashboardClient.js +1 -1
  11. package/dpr/data/dashboardClient.js.map +2 -2
  12. package/dpr/data/dashboardClient.ts +17 -0
  13. package/dpr/data/reportingClient.js +1 -1
  14. package/dpr/data/reportingClient.js.map +3 -3
  15. package/dpr/data/reportingClient.ts +1 -24
  16. package/dpr/middleware/setUpDprResources.js +1 -1
  17. package/dpr/middleware/setUpDprResources.js.map +3 -3
  18. package/dpr/middleware/setUpDprResources.ts +21 -3
  19. package/dpr/routes/authError.njk +10 -0
  20. package/dpr/routes/index.js +1 -1
  21. package/dpr/routes/index.js.map +3 -3
  22. package/dpr/routes/index.ts +7 -1
  23. package/dpr/routes/journeys/api-failures.cy.js +2 -0
  24. package/dpr/routes/journeys/api-failures.cy.js.map +7 -0
  25. package/dpr/routes/journeys/api-failures.cy.ts +377 -0
  26. package/dpr/routes/journeys/my-reports/bookmarks/service.js.map +2 -2
  27. package/dpr/routes/journeys/my-reports/bookmarks/service.ts +1 -0
  28. package/dpr/routes/journeys/request-report/controller.js +1 -1
  29. package/dpr/routes/journeys/request-report/controller.js.map +3 -3
  30. package/dpr/routes/journeys/request-report/controller.ts +25 -5
  31. package/dpr/routes/journeys/request-report/filters/controller.js +1 -1
  32. package/dpr/routes/journeys/request-report/filters/controller.js.map +2 -2
  33. package/dpr/routes/journeys/request-report/filters/controller.ts +1 -1
  34. package/dpr/routes/journeys/request-report/routes.js +1 -1
  35. package/dpr/routes/journeys/request-report/routes.js.map +3 -3
  36. package/dpr/routes/journeys/request-report/routes.ts +16 -0
  37. package/dpr/routes/journeys/request-report/status/controller.js +1 -1
  38. package/dpr/routes/journeys/request-report/status/controller.js.map +3 -3
  39. package/dpr/routes/journeys/request-report/status/controller.ts +0 -17
  40. package/dpr/routes/journeys/request-report/status/routes.js +1 -1
  41. package/dpr/routes/journeys/request-report/status/routes.js.map +2 -2
  42. package/dpr/routes/journeys/request-report/status/routes.ts +0 -1
  43. package/dpr/routes/journeys/view-report/async/dashboard/utils.js +1 -1
  44. package/dpr/routes/journeys/view-report/async/dashboard/utils.js.map +2 -2
  45. package/dpr/routes/journeys/view-report/async/dashboard/utils.ts +12 -4
  46. package/dpr/routes/journeys/view-report/sync/dashboard/controller.js +2 -0
  47. package/dpr/routes/journeys/view-report/sync/dashboard/controller.js.map +7 -0
  48. package/dpr/routes/journeys/view-report/sync/dashboard/controller.ts +39 -0
  49. package/dpr/routes/journeys/view-report/sync/dashboard/routes.js +2 -0
  50. package/dpr/routes/journeys/view-report/sync/dashboard/routes.js.map +7 -0
  51. package/dpr/routes/journeys/view-report/sync/dashboard/routes.ts +18 -0
  52. package/dpr/routes/journeys/view-report/sync/dashboard/utils.js +2 -0
  53. package/dpr/routes/journeys/view-report/sync/dashboard/utils.js.map +7 -0
  54. package/dpr/routes/journeys/view-report/sync/dashboard/utils.ts +149 -0
  55. package/dpr/routes/journeys/view-report/sync/load-report/controller.js +1 -1
  56. package/dpr/routes/journeys/view-report/sync/load-report/controller.js.map +3 -3
  57. package/dpr/routes/journeys/view-report/sync/load-report/controller.ts +43 -13
  58. package/dpr/routes/journeys/view-report/sync/report/routes.js +1 -1
  59. package/dpr/routes/journeys/view-report/sync/report/routes.js.map +3 -3
  60. package/dpr/routes/journeys/view-report/sync/report/routes.ts +2 -2
  61. package/dpr/routes/journeys/view-report/sync/routes.js +1 -1
  62. package/dpr/routes/journeys/view-report/sync/routes.js.map +3 -3
  63. package/dpr/routes/journeys/view-report/sync/routes.ts +2 -0
  64. package/dpr/routes/journeys/view-report/sync/tests.cy.js +1 -1
  65. package/dpr/routes/journeys/view-report/sync/tests.cy.js.map +2 -2
  66. package/dpr/routes/journeys/view-report/sync/tests.cy.ts +21 -1
  67. package/dpr/routes/serviceProblem.njk +10 -0
  68. package/dpr/services/dashboardService.js +1 -1
  69. package/dpr/services/dashboardService.js.map +2 -2
  70. package/dpr/services/dashboardService.ts +9 -0
  71. package/dpr/types/api.d.js +1 -1
  72. package/dpr/types/api.d.js.map +1 -1
  73. package/dpr/types/api.d.ts +139 -3
  74. package/package.json +6 -7
@@ -20,7 +20,6 @@ class DprAsyncPolling extends DprPollingStatusClass {
20
20
  this.csrfToken = this.statusSection.getAttribute('data-csrf-token')
21
21
  this.reportUrl = this.statusSection.getAttribute('data-report-url')
22
22
 
23
- this.initCancelRequestButton()
24
23
  this.initPollingInterval()
25
24
  }
26
25
 
@@ -45,27 +44,6 @@ class DprAsyncPolling extends DprPollingStatusClass {
45
44
  }
46
45
  }
47
46
  }
48
-
49
- initCancelRequestButton() {
50
- if (this.cancelRequestButton) {
51
- const meta = JSON.parse(this.requestData)
52
- const csrfToken = this.cancelRequestButton.getAttribute('data-csrf-token')
53
- this.cancelRequestButton.addEventListener('click', async () => {
54
- await fetch(meta.pollingUrl, {
55
- method: 'delete',
56
- headers: {
57
- Accept: 'application/json',
58
- 'Content-Type': 'application/json',
59
- 'CSRF-Token': csrfToken,
60
- },
61
- })
62
- .then(() => {
63
- window.location.reload()
64
- })
65
- .catch((error) => console.error('Error:', error))
66
- })
67
- }
68
- }
69
47
  }
70
48
 
71
49
  export { DprAsyncPolling }
@@ -66,14 +66,17 @@
66
66
  html: "<p>Your " + type + " will be generated shortly.</p> <p>You may navigate away from this page at anytime. Please visit the homepage to monitor your report status.</p>"
67
67
  }) }}
68
68
 
69
- {{ govukButton({
70
- id: "cancel-async-request",
71
- text: "Cancel request",
72
- classes: "govuk-button--secondary govuk-!-margin-bottom-0",
73
- attributes: {
74
- 'data-csrf-token': csrfToken
75
- }
76
- }) }}
69
+ <form method="post" action="./cancel">
70
+ <input type="hidden" name="_csrf" value="{{ csrfToken }}">
71
+ {{ govukButton({
72
+ id: "cancel-async-request",
73
+ text: "Cancel request",
74
+ classes: "govuk-button--secondary govuk-!-margin-bottom-0",
75
+ attributes: {
76
+ 'data-csrf-token': csrfToken
77
+ }
78
+ }) }}
79
+ </form>
77
80
 
78
81
  {% endif %}
79
82
 
@@ -1,2 +1,2 @@
1
- "use strict";var N=Object.create;var b=Object.defineProperty;var P=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var V=Object.getPrototypeOf,F=Object.prototype.hasOwnProperty;var O=(e,t)=>{for(var o in t)b(e,o,{get:t[o],enumerable:!0})},M=(e,t,o,D)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of E(t))!F.call(e,n)&&n!==o&&b(e,n,{get:()=>t[n],enumerable:!(D=P(t,n))||D.enumerable});return e};var R=(e,t,o)=>(o=e!=null?N(V(e)):{},M(t||!e||!e.__esModule?b(o,"default",{value:e,enumerable:!0}):o,e)),U=e=>M(b({},"__esModule",{value:!0}),e);var $={};O($,{default:()=>Y,getReportsList:()=>A});module.exports=U($);var d=require("../../../types/UserReports"),w=R(require("../../show-more/utils")),l=require("../../../utils/reportListsHelper"),x=R(require("../../../utils/localsHelper"));const A=async(e,t,o)=>{const{definitions:D,csrfToken:n,bookmarkingEnabled:H,dprUser:L}=x.default.getValues(e),v=D.sort((a,i)=>a.name<i.name?-1:a.name>i.name?1:0).flatMap(a=>{const{id:i,name:g,description:m,variants:T,dashboards:f,authorised:y}=a,p=T.map(r=>{const{id:s,name:u,description:c,isMissing:S}=r,I=r.loadType||d.LoadType.ASYNC;return{reportName:g,reportId:i,id:s,name:u,description:c||"",type:d.ReportType.REPORT,loadType:I,authorised:y,isMissing:S,...m&&m.length&&{reportDescription:m}}});let h=[];f&&(h=f.map(r=>{const{id:s,name:u,description:c}=r;return{reportName:g,reportId:i,id:s,name:u,description:c||"",type:d.ReportType.DASHBOARD,reportDescription:m||"",authorised:y,isMissing:!1,loadType:d.LoadType.ASYNC}}));const k=[...h,...p];return k.sort((r,s)=>r.name<s.name?-1:r.name>s.name?1:0),k}),B=await t.bookmarkService.getState(L.id),C=await Promise.all(v.map(async a=>{const{id:i,name:g,description:m,reportName:T,reportId:f,reportDescription:y,type:p,loadType:h,authorised:k,isMissing:r}=a,s=m||y||"",u=(0,l.setInitialHref)(h,p,f,i,e,r);let c;return(o?.bookmarkingEnabled!==void 0?o?.bookmarkingEnabled:H)&&(c=await t.bookmarkService.createBookMarkToggleHtml({userConfig:B,reportId:f,id:i,csrfToken:n,ctxId:"reports-list",reportType:p,isMissing:!!r})),[{html:`<p class="govuk-body-s">${T}</p>`},{html:(0,l.createListItemProductMin)(g,p)},{html:w.default.createShowMoreHtml(s)},{html:(0,l.createListActions)(u,p,h,c,k,r)}]}));return{head:[{text:"Product",classes:"dpr-product-head"},{text:"Name",classes:"dpr-name-head"},{text:"Description",classes:"dpr-description-head"},{text:"Actions",classes:"dpr-bookmark-head"}],rows:C,id:"dpr-reports-catalogue"}};var Y={getReportsList:A};0&&(module.exports={getReportsList});
1
+ "use strict";var P=Object.create;var k=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var V=Object.getOwnPropertyNames;var F=Object.getPrototypeOf,O=Object.prototype.hasOwnProperty;var U=(e,t)=>{for(var o in t)k(e,o,{get:t[o],enumerable:!0})},R=(e,t,o,h)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of V(t))!O.call(e,s)&&s!==o&&k(e,s,{get:()=>t[s],enumerable:!(h=E(t,s))||h.enumerable});return e};var w=(e,t,o)=>(o=e!=null?P(F(e)):{},R(t||!e||!e.__esModule?k(o,"default",{value:e,enumerable:!0}):o,e)),Y=e=>R(k({},"__esModule",{value:!0}),e);var j={};U(j,{default:()=>$,getReportsList:()=>L});module.exports=Y(j);var d=require("../../../types/UserReports"),x=w(require("../../show-more/utils")),l=require("../../../utils/reportListsHelper"),A=w(require("../../../utils/localsHelper"));const L=async(e,t,o)=>{const{definitions:h,csrfToken:s,bookmarkingEnabled:v,dprUser:B}=A.default.getValues(e),H=h.sort((m,n)=>m.name<n.name?-1:m.name>n.name?1:0).flatMap(m=>{const{id:n,name:T,description:S,variants:g,dashboards:f,authorised:b}=m,a={reportName:T,reportId:n,authorised:b,reportDescription:S||""};let u=[];g&&(u=g.map(r=>{const{id:i,name:c,description:y,isMissing:M,loadType:N}=r;return{...a,type:d.ReportType.REPORT,loadType:N||d.LoadType.ASYNC,id:i,name:c,description:y||"",isMissing:M}}));let D=[];f&&(D=f.map(r=>{const{id:i,name:c,description:y,loadType:M}=r;return{...a,type:d.ReportType.DASHBOARD,loadType:M||d.LoadType.ASYNC,id:i,name:c,description:y||"",isMissing:!1}}));const p=[...D,...u];return p.sort((r,i)=>r.name<i.name?-1:r.name>i.name?1:0),p}),C=await t.bookmarkService.getState(B.id),I=await Promise.all(H.map(async m=>{const{id:n,name:T,description:S,reportName:g,reportId:f,reportDescription:b,type:a,loadType:u,authorised:D,isMissing:p}=m,r=S||b||"",i=(0,l.setInitialHref)(u,a,f,n,e,p);let c;return(o?.bookmarkingEnabled!==void 0?o?.bookmarkingEnabled:v)&&(c=await t.bookmarkService.createBookMarkToggleHtml({userConfig:C,reportId:f,id:n,csrfToken:s,ctxId:"reports-list",reportType:a,isMissing:!!p})),[{html:`<p class="govuk-body-s">${g}</p>`},{html:(0,l.createListItemProductMin)(T,a)},{html:x.default.createShowMoreHtml(r)},{html:(0,l.createListActions)(i,a,u,c,D,p)}]}));return{head:[{text:"Product",classes:"dpr-product-head"},{text:"Name",classes:"dpr-name-head"},{text:"Description",classes:"dpr-description-head"},{text:"Actions",classes:"dpr-bookmark-head"}],rows:I,id:"dpr-reports-catalogue"}};var $={getReportsList:L};0&&(module.exports={getReportsList});
2
2
  //# sourceMappingURL=utils.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/dpr/components/_catalogue/catalogue-list/utils.ts"],
4
- "sourcesContent": ["import { Response } from 'express'\nimport { components } from '../../../types/api'\nimport { Services } from '../../../types/Services'\nimport { DefinitionData, LoadType, ReportType } from '../../../types/UserReports'\nimport ShowMoreUtils from '../../show-more/utils'\nimport { createListItemProductMin, createListActions, setInitialHref } from '../../../utils/reportListsHelper'\nimport { CatalogueFeatures } from '../catalogue/types'\nimport LocalsHelper from '../../../utils/localsHelper'\n\nexport const getReportsList = async (\n res: Response,\n services: Services,\n features?: CatalogueFeatures,\n): Promise<{ head: { text: string }[]; rows: { text?: string; html?: string }[]; id: string }> => {\n const { definitions, csrfToken, bookmarkingEnabled, dprUser } = LocalsHelper.getValues(res)\n\n // Sort report Definitions by product name\n const sortedDefinitions = definitions.sort(\n (a: components['schemas']['ReportDefinitionSummary'], b: components['schemas']['ReportDefinitionSummary']) => {\n if (a.name < b.name) return -1\n if (a.name > b.name) return 1\n return 0\n },\n )\n\n // Sort by variant/dashboard name\n const sortedVariants = sortedDefinitions.flatMap(\n (\n def: components['schemas']['ReportDefinitionSummary'] & {\n dashboards: components['schemas']['DashboardDefinition'][]\n authorised: boolean\n },\n ) => {\n const { id: reportId, name: reportName, description: reportDescription, variants, dashboards, authorised } = def\n\n const variantsArray: DefinitionData[] = variants.map(\n (variant: components['schemas']['VariantDefinitionSummary']) => {\n const { id, name, description, isMissing } = variant\n\n // NOTE: loadType added to VariantDefinitionSummary mocked data to dictate the load/request journey. Not present in API response. To discuss\n const loadType = variant.loadType || LoadType.ASYNC\n\n return {\n reportName,\n reportId,\n id,\n name,\n description: description || '',\n type: ReportType.REPORT,\n loadType: loadType as LoadType,\n authorised,\n isMissing,\n ...(reportDescription && reportDescription.length && { reportDescription }),\n }\n },\n )\n\n let dashboardsArray: DefinitionData[] = []\n if (dashboards) {\n dashboardsArray = dashboards.map((dashboard: components['schemas']['DashboardDefinition']) => {\n const { id, name, description } = dashboard\n return {\n reportName,\n reportId,\n id,\n name,\n description: description || '',\n type: ReportType.DASHBOARD,\n reportDescription: reportDescription || '',\n authorised,\n isMissing: false,\n loadType: LoadType.ASYNC,\n }\n })\n }\n\n const mergedArray = [...dashboardsArray, ...variantsArray]\n\n mergedArray.sort((a: DefinitionData, b: DefinitionData) => {\n if (a.name < b.name) return -1\n if (a.name > b.name) return 1\n return 0\n })\n\n return mergedArray\n },\n )\n\n const userConfig = await services.bookmarkService.getState(dprUser.id)\n const rows = await Promise.all(\n sortedVariants.map(async (v: DefinitionData) => {\n const { id, name, description, reportName, reportId, reportDescription, type, loadType, authorised, isMissing } =\n v\n const desc = description || reportDescription || ''\n\n const href = setInitialHref(loadType, type, reportId, id, res, isMissing)\n\n let bookmarkHtml\n const showBookMarkToggle =\n features?.bookmarkingEnabled !== undefined ? features?.bookmarkingEnabled : bookmarkingEnabled\n\n if (showBookMarkToggle) {\n bookmarkHtml = await services.bookmarkService.createBookMarkToggleHtml({\n userConfig,\n reportId,\n id,\n csrfToken,\n ctxId: 'reports-list',\n reportType: type,\n isMissing: Boolean(isMissing),\n })\n }\n\n return [\n { html: `<p class=\"govuk-body-s\">${reportName}</p>` },\n { html: createListItemProductMin(name, <ReportType>type) },\n { html: ShowMoreUtils.createShowMoreHtml(desc) },\n { html: createListActions(href, type, loadType, bookmarkHtml, authorised, isMissing) },\n ]\n }),\n )\n\n const head = [\n { text: 'Product', classes: 'dpr-product-head' },\n { text: 'Name', classes: 'dpr-name-head' },\n { text: 'Description', classes: 'dpr-description-head' },\n { text: 'Actions', classes: 'dpr-bookmark-head' },\n ]\n\n return {\n head,\n rows,\n id: 'dpr-reports-catalogue',\n }\n}\n\nexport default {\n getReportsList,\n}\n"],
5
- "mappings": "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",
6
- "names": ["utils_exports", "__export", "utils_default", "getReportsList", "__toCommonJS", "import_UserReports", "import_utils", "import_reportListsHelper", "import_localsHelper", "res", "services", "features", "definitions", "csrfToken", "bookmarkingEnabled", "dprUser", "LocalsHelper", "sortedVariants", "b", "def", "reportId", "reportName", "reportDescription", "variants", "dashboards", "authorised", "variantsArray", "variant", "id", "name", "description", "isMissing", "loadType", "dashboardsArray", "dashboard", "mergedArray", "a", "userConfig", "rows", "v", "type", "desc", "href", "bookmarkHtml", "ShowMoreUtils"]
4
+ "sourcesContent": ["import { Response } from 'express'\nimport { components } from '../../../types/api'\nimport { Services } from '../../../types/Services'\nimport { DefinitionData, LoadType, ReportType } from '../../../types/UserReports'\nimport ShowMoreUtils from '../../show-more/utils'\nimport { createListItemProductMin, createListActions, setInitialHref } from '../../../utils/reportListsHelper'\nimport { CatalogueFeatures } from '../catalogue/types'\nimport LocalsHelper from '../../../utils/localsHelper'\n\nexport const getReportsList = async (\n res: Response,\n services: Services,\n features?: CatalogueFeatures,\n): Promise<{ head: { text: string }[]; rows: { text?: string; html?: string }[]; id: string }> => {\n const { definitions, csrfToken, bookmarkingEnabled, dprUser } = LocalsHelper.getValues(res)\n\n // Sort report Definitions by product name\n const sortedDefinitions = definitions.sort(\n (a: components['schemas']['ReportDefinitionSummary'], b: components['schemas']['ReportDefinitionSummary']) => {\n if (a.name < b.name) return -1\n if (a.name > b.name) return 1\n return 0\n },\n )\n\n // Sort by variant/dashboard name\n const sortedVariants = sortedDefinitions.flatMap((def: components['schemas']['ReportDefinitionSummary']) => {\n const { id: reportId, name: reportName, description: reportDescription, variants, dashboards, authorised } = def\n\n const productBase = {\n reportName,\n reportId,\n authorised,\n reportDescription: reportDescription || '',\n }\n\n let variantsArray: DefinitionData[] = []\n if (variants) {\n variantsArray = variants.map((variant: components['schemas']['VariantDefinitionSummary']) => {\n const { id, name, description, isMissing, loadType } = variant\n\n return {\n ...productBase,\n type: ReportType.REPORT,\n loadType: <LoadType>loadType || LoadType.ASYNC,\n id,\n name,\n description: description || '',\n isMissing,\n }\n })\n }\n\n let dashboardsArray: DefinitionData[] = []\n if (dashboards) {\n dashboardsArray = dashboards.map((dashboard: components['schemas']['DashboardDefinitionSummary']) => {\n const { id, name, description, loadType } = dashboard\n\n return {\n ...productBase,\n type: ReportType.DASHBOARD,\n loadType: <LoadType>loadType || LoadType.ASYNC,\n id,\n name,\n description: description || '',\n isMissing: false,\n }\n })\n }\n\n const mergedArray = [...dashboardsArray, ...variantsArray]\n\n mergedArray.sort((a: DefinitionData, b: DefinitionData) => {\n if (a.name < b.name) return -1\n if (a.name > b.name) return 1\n return 0\n })\n\n return mergedArray\n })\n\n const userConfig = await services.bookmarkService.getState(dprUser.id)\n const rows = await Promise.all(\n sortedVariants.map(async (v: DefinitionData) => {\n const { id, name, description, reportName, reportId, reportDescription, type, loadType, authorised, isMissing } =\n v\n const desc = description || reportDescription || ''\n\n const href = setInitialHref(loadType, type, reportId, id, res, isMissing)\n\n let bookmarkHtml\n const showBookMarkToggle =\n features?.bookmarkingEnabled !== undefined ? features?.bookmarkingEnabled : bookmarkingEnabled\n\n if (showBookMarkToggle) {\n bookmarkHtml = await services.bookmarkService.createBookMarkToggleHtml({\n userConfig,\n reportId,\n id,\n csrfToken,\n ctxId: 'reports-list',\n reportType: type,\n isMissing: Boolean(isMissing),\n })\n }\n\n return [\n { html: `<p class=\"govuk-body-s\">${reportName}</p>` },\n { html: createListItemProductMin(name, <ReportType>type) },\n { html: ShowMoreUtils.createShowMoreHtml(desc) },\n { html: createListActions(href, type, loadType, bookmarkHtml, authorised, isMissing) },\n ]\n }),\n )\n\n const head = [\n { text: 'Product', classes: 'dpr-product-head' },\n { text: 'Name', classes: 'dpr-name-head' },\n { text: 'Description', classes: 'dpr-description-head' },\n { text: 'Actions', classes: 'dpr-bookmark-head' },\n ]\n\n return {\n head,\n rows,\n id: 'dpr-reports-catalogue',\n }\n}\n\nexport default {\n getReportsList,\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["utils_exports", "__export", "utils_default", "getReportsList", "__toCommonJS", "import_UserReports", "import_utils", "import_reportListsHelper", "import_localsHelper", "res", "services", "features", "definitions", "csrfToken", "bookmarkingEnabled", "dprUser", "LocalsHelper", "sortedVariants", "a", "b", "def", "reportId", "reportName", "reportDescription", "variants", "dashboards", "authorised", "productBase", "variantsArray", "variant", "id", "name", "description", "isMissing", "loadType", "dashboardsArray", "dashboard", "mergedArray", "userConfig", "rows", "v", "type", "desc", "href", "bookmarkHtml", "ShowMoreUtils"]
7
7
  }
@@ -24,67 +24,60 @@ export const getReportsList = async (
24
24
  )
25
25
 
26
26
  // Sort by variant/dashboard name
27
- const sortedVariants = sortedDefinitions.flatMap(
28
- (
29
- def: components['schemas']['ReportDefinitionSummary'] & {
30
- dashboards: components['schemas']['DashboardDefinition'][]
31
- authorised: boolean
32
- },
33
- ) => {
34
- const { id: reportId, name: reportName, description: reportDescription, variants, dashboards, authorised } = def
35
-
36
- const variantsArray: DefinitionData[] = variants.map(
37
- (variant: components['schemas']['VariantDefinitionSummary']) => {
38
- const { id, name, description, isMissing } = variant
39
-
40
- // NOTE: loadType added to VariantDefinitionSummary mocked data to dictate the load/request journey. Not present in API response. To discuss
41
- const loadType = variant.loadType || LoadType.ASYNC
42
-
43
- return {
44
- reportName,
45
- reportId,
46
- id,
47
- name,
48
- description: description || '',
49
- type: ReportType.REPORT,
50
- loadType: loadType as LoadType,
51
- authorised,
52
- isMissing,
53
- ...(reportDescription && reportDescription.length && { reportDescription }),
54
- }
55
- },
56
- )
57
-
58
- let dashboardsArray: DefinitionData[] = []
59
- if (dashboards) {
60
- dashboardsArray = dashboards.map((dashboard: components['schemas']['DashboardDefinition']) => {
61
- const { id, name, description } = dashboard
62
- return {
63
- reportName,
64
- reportId,
65
- id,
66
- name,
67
- description: description || '',
68
- type: ReportType.DASHBOARD,
69
- reportDescription: reportDescription || '',
70
- authorised,
71
- isMissing: false,
72
- loadType: LoadType.ASYNC,
73
- }
74
- })
75
- }
27
+ const sortedVariants = sortedDefinitions.flatMap((def: components['schemas']['ReportDefinitionSummary']) => {
28
+ const { id: reportId, name: reportName, description: reportDescription, variants, dashboards, authorised } = def
29
+
30
+ const productBase = {
31
+ reportName,
32
+ reportId,
33
+ authorised,
34
+ reportDescription: reportDescription || '',
35
+ }
36
+
37
+ let variantsArray: DefinitionData[] = []
38
+ if (variants) {
39
+ variantsArray = variants.map((variant: components['schemas']['VariantDefinitionSummary']) => {
40
+ const { id, name, description, isMissing, loadType } = variant
41
+
42
+ return {
43
+ ...productBase,
44
+ type: ReportType.REPORT,
45
+ loadType: <LoadType>loadType || LoadType.ASYNC,
46
+ id,
47
+ name,
48
+ description: description || '',
49
+ isMissing,
50
+ }
51
+ })
52
+ }
76
53
 
77
- const mergedArray = [...dashboardsArray, ...variantsArray]
54
+ let dashboardsArray: DefinitionData[] = []
55
+ if (dashboards) {
56
+ dashboardsArray = dashboards.map((dashboard: components['schemas']['DashboardDefinitionSummary']) => {
57
+ const { id, name, description, loadType } = dashboard
78
58
 
79
- mergedArray.sort((a: DefinitionData, b: DefinitionData) => {
80
- if (a.name < b.name) return -1
81
- if (a.name > b.name) return 1
82
- return 0
59
+ return {
60
+ ...productBase,
61
+ type: ReportType.DASHBOARD,
62
+ loadType: <LoadType>loadType || LoadType.ASYNC,
63
+ id,
64
+ name,
65
+ description: description || '',
66
+ isMissing: false,
67
+ }
83
68
  })
69
+ }
84
70
 
85
- return mergedArray
86
- },
87
- )
71
+ const mergedArray = [...dashboardsArray, ...variantsArray]
72
+
73
+ mergedArray.sort((a: DefinitionData, b: DefinitionData) => {
74
+ if (a.name < b.name) return -1
75
+ if (a.name > b.name) return 1
76
+ return 0
77
+ })
78
+
79
+ return mergedArray
80
+ })
88
81
 
89
82
  const userConfig = await services.bookmarkService.getState(dprUser.id)
90
83
  const rows = await Promise.all(
@@ -16,7 +16,7 @@
16
16
  html: "<p><strong>Please keep this window open to preserve your progress</strong></p> <p>Your" + type + " will be ready shortly.</p>"
17
17
  }) }}
18
18
 
19
- <form id="dpr-sync-loading-form" action="./report" method="get"></form>
19
+ <form id="dpr-sync-loading-form" action="./{{ type }}" method="get"></form>
20
20
  </div>
21
21
 
22
22
  {% endmacro %}
@@ -1,2 +1,2 @@
1
- "use strict";var j=Object.create;var k=Object.defineProperty;var G=Object.getOwnPropertyDescriptor;var J=Object.getOwnPropertyNames;var K=Object.getPrototypeOf,X=Object.prototype.hasOwnProperty;var z=(r,s)=>{for(var t in s)k(r,t,{get:s[t],enumerable:!0})},F=(r,s,t,e)=>{if(s&&typeof s=="object"||typeof s=="function")for(let a of J(s))!X.call(r,a)&&a!==t&&k(r,a,{get:()=>s[a],enumerable:!(e=G(s,a))||e.enumerable});return r};var c=(r,s,t)=>(t=r!=null?j(K(r)):{},F(s||!r||!r.__esModule?k(t,"default",{value:r,enumerable:!0}):t,r)),W=r=>F(k({},"__esModule",{value:!0}),r);var ie={};z(ie,{default:()=>oe,init:()=>Y,renderList:()=>U,setDataFromStatus:()=>Q,updateExpiredStatus:()=>B,updateLastViewed:()=>H});module.exports=W(ie);var $=c(require("dayjs")),i=require("../../types/UserReports"),x=require("../../utils/requestStatusHelper"),A=c(require("../_filters/filters-selected/utils")),P=c(require("../_filters/utils")),y=require("../../utils/reportListsHelper"),V=c(require("./requested/utils")),L=c(require("./viewed/utils")),_=c(require("./bookmarks/utils")),q=c(require("../../utils/localsHelper")),M=c(require("../../utils/DateMapper/DateMapper")),N=c(require("../../utils/UserStoreItemBuilder"));const Z=r=>{const s=JSON.parse(JSON.stringify(r)),{executionId:t,tableId:e,variantName:a,name:l,reportId:o,variantId:d,id:u,description:p,query:n,interactiveQuery:m,status:g,reportName:D,dataProductDefinitionsPath:b,type:w,url:S}=s;let v=[];n&&(v=n.summary);let f=[];m&&(f=m.summary);const R=w||i.ReportType.REPORT;return{id:t,text:l||a||"",reportName:D,description:p,tag:"MIS",summary:v,interactiveSummary:f,status:g,type:R,...g&&Q(g,s),meta:{reportId:o,id:d||u,executionId:t,tableId:e,status:g,type:R,dataProductDefinitionsPath:b,pollingUrl:S?.polling?.pathname,reportUrl:S?.report?.pathname}}},ee=(r,s)=>({rows:r.map(e=>te(e,s)),head:[{text:"Product",classes:"dpr-req-product-head"},{text:"Filters",classes:"dpr-req-filters-head"},{text:"Status",classes:"dpr-req-status-head"},{text:"Actions",classes:"dpr-req-actions-head"}]}),te=(r,s)=>{let t,e="";const{href:a,id:l,reportName:o,text:d,timestamp:u,type:p,status:n}=r;if(a&&l)switch(n){case i.RequestStatus.FAILED:t="govuk-tag--red",e=(0,y.itemActionsHtml)(a,l,s,n);break;case i.RequestStatus.EXPIRED:t="govuk-tag--grey",e=(0,y.itemActionsHtml)(a,l,s,n);break;case i.RequestStatus.ABORTED:t="govuk-tag--orange",e=(0,y.itemActionsHtml)(a,l,s,n);break;case i.RequestStatus.READY:case i.RequestStatus.FINISHED:e=`<a class=govuk-link govuk-link--no-visited-state dpr-type__${p}' href="${a}">Go to ${p}</a>`,t="govuk-tag--green";break;case i.RequestStatus.PICKED:case i.RequestStatus.SUBMITTED:case i.RequestStatus.STARTED:e=`<a class='govuk-link govuk-link--no-visited-state dpr-type__${p}' href="${a}">Go to status</a>`;break;default:break}let m="";return(r.summary||r.interactiveSummary)&&(m=ae(r)),[{html:(0,y.createListItemProduct)(o,d,p,u)},{html:m},{html:`<strong class="govuk-tag dpr-request-status-tag ${t}">${n}</strong>`,classes:"dpr-req-cell dpr-req-cell__status"},{html:`${e}`,classes:"dpr-req-cell dpr-req-cell__status"}]},re=(r,s=20)=>({amount:r,shown:s&&r>s?s:r,max:s}),ae=r=>{const s=r.summary?.map(e=>`<li class="govuk-body-s dpr-query-summary"><strong>${e.name}</strong>: ${e.value}</li>`).join(""),t=r.interactiveSummary?.map(e=>`<li class="govuk-body-s dpr-interactive-query-summary"><strong>${e.name}</strong>: ${e.value}</li>`).join("");return`<ul class="dpr-card-group__item__filters-list govuk-!-margin-top-0 govuk-!-margin-bottom-0">${s}${t}</ul>`},se=(r,s)=>{const{nestedBaseUrl:t}=q.default.getValues(s);return r.map(e=>({reportId:e.meta?.reportId,id:e.meta.id,executionId:e.meta.executionId,tableId:e.meta.tableId,status:e.meta.status,requestedAt:e.meta.requestedAt,type:e.meta.type,dataProductDefinitionsPath:e.meta.dataProductDefinitionsPath,pollingUrl:e.meta.pollingUrl,reportUrl:e.meta.reportUrl,nestedBaseUrl:t}))},Q=(r,s)=>{let t,e,a;const{url:l,timestamp:o}=s,d=l?.polling,u=l?.request,p=l?.report,n=new M.default;switch(r){case i.RequestStatus.FAILED:{a=o.failed?n.toDateString(o.failed,"local-date"):(0,$.default)().format("DD/MM/YYYY"),e=d?.fullUrl,t=`Failed at: ${a}`;break}case i.RequestStatus.ABORTED:{e=u?.fullUrl,a=n.toDateString(o.aborted,"local-date"),t=`Aborted at: ${a}`;break}case i.RequestStatus.FINISHED:e=p?.fullUrl,a=n.toDateString(o.completed,"local-date"),t=`Ready at: ${a}`;break;case i.RequestStatus.EXPIRED:{e=u?.fullUrl,a=n.toDateString(o.expired,"local-date"),t=`Expired at: ${a}`;break}case i.RequestStatus.READY:{e=p?.fullUrl,a=n.toDateString(o.lastViewed,"local-date"),t=`Last viewed: ${a}`;break}case i.RequestStatus.SUBMITTED:case i.RequestStatus.STARTED:case i.RequestStatus.PICKED:e=d?.fullUrl,a=n.toDateString(o.requested,"local-date"),t=`Requested at: ${a}`;break;default:a=n.toDateString(o.lastViewed,"local-date"),t=`Last viewed: ${a}`;break}return{timestamp:t,href:e}},U=async({res:r,reportsData:s,maxRows:t,filterFunction:e,type:a})=>{const{csrfToken:l}=q.default.getValues(r);let o=s.filter(e).map(Z);const d=o.length;t&&(o=o.slice(0,t));const u=ee(o,a),p=a==="requested"?"requested-reports":"recently-viewed";return{head:{...o.length&&{href:`dpr/my-reports/${p}/list`},...!o.length&&{emptyMessage:`You have 0 ${a} reports`}},tableData:u,total:re(d,t),meta:se(o,r),csrfToken:l,...t&&{maxRows:t}}},B=async({req:r,res:s,services:t})=>{const{dprUser:e}=q.default.getValues(s),a=await(0,x.getExpiredStatus)({req:r,res:s,services:t});return a&&a.isExpired&&(await t.recentlyViewedService.setToExpired(a.executionId,e.id),await t.requestedReportService.setToExpired(a.executionId,e.id)),a?a.isExpired:!1},Y=async({services:r,res:s,maxRows:t=6})=>{const{requestedReports:e,recentlyViewedReports:a,bookmarkingEnabled:l}=q.default.getValues(s),o=await U({res:s,reportsData:e,filterFunction:V.default.filterReports,maxRows:t,type:"requested"}),d=await U({res:s,reportsData:a,filterFunction:L.default.filterReports,maxRows:t,type:"viewed"});let u;return l&&(u=await _.default.renderBookmarkList({res:s,services:r,maxRows:t})),{requestedReports:o,viewedReports:d,bookmarks:u}},H=async({req:r,services:s,reportStateData:t,userId:e,filters:a})=>{const{type:l,reportId:o,reportName:d,description:u,id:p,name:n,executionId:m,tableId:g,query:D,url:b}=t,w={type:l,reportId:o,reportName:d,description:u,id:p,name:n},S={executionId:m,tableId:g},v=D?{query:D.data,querySummary:D.summary}:{query:{},querySummary:[]},f=r.query?.columns,{selectedPage:R,pageSize:I,sortColumn:h,sortedAsc:E}=r.query,T=P.default.setRequestQueryFromFilterValues(a,!0),C={query:{...T,...f&&{columns:f},...R&&{selectedPage:R},...I&&{pageSize:I},...h&&{sortColumn:h},...E&&{sortedAsc:E}},querySummary:A.default.getQuerySummary(T,a)},O=new N.default(w).addExecutionData(S).addQuery(v).addInteractiveQuery(C).addStatus(i.RequestStatus.READY).addTimestamp().addAsyncUrls(b).addReportUrls(r).build();m&&await s.requestedReportService.updateLastViewed(m,e),await s.recentlyViewedService.setRecentlyViewed(O,e)};var oe={renderList:U,updateExpiredStatus:B,init:Y,updateLastViewed:H};0&&(module.exports={init,renderList,setDataFromStatus,updateExpiredStatus,updateLastViewed});
1
+ "use strict";var j=Object.create;var k=Object.defineProperty;var G=Object.getOwnPropertyDescriptor;var J=Object.getOwnPropertyNames;var K=Object.getPrototypeOf,X=Object.prototype.hasOwnProperty;var z=(r,s)=>{for(var t in s)k(r,t,{get:s[t],enumerable:!0})},F=(r,s,t,e)=>{if(s&&typeof s=="object"||typeof s=="function")for(let a of J(s))!X.call(r,a)&&a!==t&&k(r,a,{get:()=>s[a],enumerable:!(e=G(s,a))||e.enumerable});return r};var c=(r,s,t)=>(t=r!=null?j(K(r)):{},F(s||!r||!r.__esModule?k(t,"default",{value:r,enumerable:!0}):t,r)),W=r=>F(k({},"__esModule",{value:!0}),r);var ie={};z(ie,{default:()=>oe,init:()=>Y,renderList:()=>U,setDataFromStatus:()=>Q,updateExpiredStatus:()=>B,updateLastViewed:()=>H});module.exports=W(ie);var $=c(require("dayjs")),i=require("../../types/UserReports"),x=require("../../utils/requestStatusHelper"),A=c(require("../_filters/filters-selected/utils")),P=c(require("../_filters/utils")),y=require("../../utils/reportListsHelper"),V=c(require("./requested/utils")),L=c(require("./viewed/utils")),_=c(require("./bookmarks/utils")),q=c(require("../../utils/localsHelper")),M=c(require("../../utils/DateMapper/DateMapper")),N=c(require("../../utils/UserStoreItemBuilder"));const Z=r=>{const s=JSON.parse(JSON.stringify(r)),{executionId:t,tableId:e,variantName:a,name:l,reportId:o,variantId:d,id:u,description:p,query:n,interactiveQuery:m,status:g,reportName:D,dataProductDefinitionsPath:b,type:w,url:S}=s;let v=[];n&&(v=n.summary);let f=[];m&&(f=m.summary);const R=w||i.ReportType.REPORT;return{id:t,text:l||a||"",reportName:D,description:p,tag:"MIS",summary:v,interactiveSummary:f,status:g,type:R,...g&&Q(g,s),meta:{reportId:o,id:d||u,executionId:t,tableId:e,status:g,type:R,dataProductDefinitionsPath:b,pollingUrl:S?.polling?.pathname,reportUrl:S?.report?.pathname}}},ee=(r,s)=>({rows:r.map(e=>te(e,s)),head:[{text:"Product",classes:"dpr-req-product-head"},{text:"Filters",classes:"dpr-req-filters-head"},{text:"Status",classes:"dpr-req-status-head"},{text:"Actions",classes:"dpr-req-actions-head"}]}),te=(r,s)=>{let t,e="";const{href:a,id:l,reportName:o,text:d,timestamp:u,type:p,status:n}=r;if(a)switch(n){case i.RequestStatus.FAILED:t="govuk-tag--red",e=l?(0,y.itemActionsHtml)(a,l,s,n):"";break;case i.RequestStatus.EXPIRED:t="govuk-tag--grey",e=l?(0,y.itemActionsHtml)(a,l,s,n):"";break;case i.RequestStatus.ABORTED:t="govuk-tag--orange",e=l?(0,y.itemActionsHtml)(a,l,s,n):"";break;case i.RequestStatus.READY:case i.RequestStatus.FINISHED:e=`<a class=govuk-link govuk-link--no-visited-state dpr-type__${p}' href="${a}">Go to ${p}</a>`,t="govuk-tag--green";break;case i.RequestStatus.PICKED:case i.RequestStatus.SUBMITTED:case i.RequestStatus.STARTED:e=`<a class='govuk-link govuk-link--no-visited-state dpr-type__${p}' href="${a}">Go to status</a>`;break;default:break}let m="";return(r.summary||r.interactiveSummary)&&(m=ae(r)),[{html:(0,y.createListItemProduct)(o,d,p,u)},{html:m},{html:`<strong class="govuk-tag dpr-request-status-tag ${t}">${n}</strong>`,classes:"dpr-req-cell dpr-req-cell__status"},{html:`${e}`,classes:"dpr-req-cell dpr-req-cell__status"}]},re=(r,s=20)=>({amount:r,shown:s&&r>s?s:r,max:s}),ae=r=>{const s=r.summary?.map(e=>`<li class="govuk-body-s dpr-query-summary"><strong>${e.name}</strong>: ${e.value}</li>`).join(""),t=r.interactiveSummary?.map(e=>`<li class="govuk-body-s dpr-interactive-query-summary"><strong>${e.name}</strong>: ${e.value}</li>`).join("");return`<ul class="dpr-card-group__item__filters-list govuk-!-margin-top-0 govuk-!-margin-bottom-0">${s}${t}</ul>`},se=(r,s)=>{const{nestedBaseUrl:t}=q.default.getValues(s);return r.map(e=>({reportId:e.meta?.reportId,id:e.meta.id,executionId:e.meta.executionId,tableId:e.meta.tableId,status:e.meta.status,requestedAt:e.meta.requestedAt,type:e.meta.type,dataProductDefinitionsPath:e.meta.dataProductDefinitionsPath,pollingUrl:e.meta.pollingUrl,reportUrl:e.meta.reportUrl,nestedBaseUrl:t}))},Q=(r,s)=>{let t,e,a;const{url:l,timestamp:o}=s,d=l?.polling,u=l?.request,p=l?.report,n=new M.default;switch(r){case i.RequestStatus.FAILED:{a=o.failed?n.toDateString(o.failed,"local-date"):(0,$.default)().format("DD/MM/YYYY"),e=d?.fullUrl,t=`Failed at: ${a}`;break}case i.RequestStatus.ABORTED:{e=u?.fullUrl,a=n.toDateString(o.aborted,"local-date"),t=`Aborted at: ${a}`;break}case i.RequestStatus.FINISHED:e=p?.fullUrl,a=n.toDateString(o.completed,"local-date"),t=`Ready at: ${a}`;break;case i.RequestStatus.EXPIRED:{e=u?.fullUrl,a=n.toDateString(o.expired,"local-date"),t=`Expired at: ${a}`;break}case i.RequestStatus.READY:{e=p?.fullUrl,a=n.toDateString(o.lastViewed,"local-date"),t=`Last viewed: ${a}`;break}case i.RequestStatus.SUBMITTED:case i.RequestStatus.STARTED:case i.RequestStatus.PICKED:e=d?.fullUrl,a=n.toDateString(o.requested,"local-date"),t=`Requested at: ${a}`;break;default:a=n.toDateString(o.lastViewed,"local-date"),t=`Last viewed: ${a}`;break}return{timestamp:t,href:e}},U=async({res:r,reportsData:s,maxRows:t,filterFunction:e,type:a})=>{const{csrfToken:l}=q.default.getValues(r);let o=s.filter(e).map(Z);const d=o.length;t&&(o=o.slice(0,t));const u=ee(o,a),p=a==="requested"?"requested-reports":"recently-viewed";return{head:{...o.length&&{href:`dpr/my-reports/${p}/list`},...!o.length&&{emptyMessage:`You have 0 ${a} reports`}},tableData:u,total:re(d,t),meta:se(o,r),csrfToken:l,...t&&{maxRows:t}}},B=async({req:r,res:s,services:t})=>{const{dprUser:e}=q.default.getValues(s),a=await(0,x.getExpiredStatus)({req:r,res:s,services:t});return a&&a.isExpired&&(await t.recentlyViewedService.setToExpired(a.executionId,e.id),await t.requestedReportService.setToExpired(a.executionId,e.id)),a?a.isExpired:!1},Y=async({services:r,res:s,maxRows:t=6})=>{const{requestedReports:e,recentlyViewedReports:a,bookmarkingEnabled:l}=q.default.getValues(s),o=await U({res:s,reportsData:e,filterFunction:V.default.filterReports,maxRows:t,type:"requested"}),d=await U({res:s,reportsData:a,filterFunction:L.default.filterReports,maxRows:t,type:"viewed"});let u;return l&&(u=await _.default.renderBookmarkList({res:s,services:r,maxRows:t})),{requestedReports:o,viewedReports:d,bookmarks:u}},H=async({req:r,services:s,reportStateData:t,userId:e,filters:a})=>{const{type:l,reportId:o,reportName:d,description:u,id:p,name:n,executionId:m,tableId:g,query:D,url:b}=t,w={type:l,reportId:o,reportName:d,description:u,id:p,name:n},S={executionId:m,tableId:g},v=D?{query:D.data,querySummary:D.summary}:{query:{},querySummary:[]},f=r.query?.columns,{selectedPage:R,pageSize:I,sortColumn:h,sortedAsc:E}=r.query,T=P.default.setRequestQueryFromFilterValues(a,!0),C={query:{...T,...f&&{columns:f},...R&&{selectedPage:R},...I&&{pageSize:I},...h&&{sortColumn:h},...E&&{sortedAsc:E}},querySummary:A.default.getQuerySummary(T,a)},O=new N.default(w).addExecutionData(S).addQuery(v).addInteractiveQuery(C).addStatus(i.RequestStatus.READY).addTimestamp().addAsyncUrls(b).addReportUrls(r).build();m&&await s.requestedReportService.updateLastViewed(m,e),await s.recentlyViewedService.setRecentlyViewed(O,e)};var oe={renderList:U,updateExpiredStatus:B,init:Y,updateLastViewed:H};0&&(module.exports={init,renderList,setDataFromStatus,updateExpiredStatus,updateLastViewed});
2
2
  //# sourceMappingURL=utils.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/dpr/components/user-reports/utils.ts"],
4
- "sourcesContent": ["import { Response, Request } from 'express'\nimport dayjs from 'dayjs'\nimport { RenderTableListResponse } from './types'\nimport Dict = NodeJS.Dict\nimport {\n FormattedUserReportData,\n UserReportData,\n RequestStatus,\n ReportType,\n RequestedReport,\n StoredReportData,\n meta,\n} from '../../types/UserReports'\nimport { FilterValue } from '../_filters/types'\nimport { Services } from '../../types/Services'\n\nimport { AsyncReportUtilsParams } from '../../types/AsyncReportUtils'\nimport { getExpiredStatus } from '../../utils/requestStatusHelper'\nimport SelectedFiltersUtils from '../_filters/filters-selected/utils'\nimport FiltersUtils from '../_filters/utils'\nimport { itemActionsHtml, createListItemProduct } from '../../utils/reportListsHelper'\nimport RequestedReportUtils from './requested/utils'\nimport RecentlyViewedCardGroupUtils from './viewed/utils'\nimport BookmarklistUtils from './bookmarks/utils'\nimport LocalsHelper from '../../utils/localsHelper'\nimport DateMapper from '../../utils/DateMapper/DateMapper'\nimport UserStoreItemBuilder from '../../utils/UserStoreItemBuilder'\n\nconst formatData = (reportData: UserReportData): FormattedUserReportData => {\n const reportDataCopy: UserReportData = JSON.parse(JSON.stringify(reportData))\n\n const {\n executionId,\n tableId,\n variantName,\n name,\n reportId,\n variantId,\n id,\n description,\n query,\n interactiveQuery,\n status,\n reportName,\n dataProductDefinitionsPath,\n type: reportType,\n url,\n } = reportDataCopy\n\n let summary: { name: string; value: string }[] = []\n if (query) {\n summary = query.summary as { name: string; value: string }[]\n }\n let interactiveSummary: { name: string; value: string }[] = []\n if (interactiveQuery) {\n interactiveSummary = interactiveQuery.summary as { name: string; value: string }[]\n }\n\n const type = reportType || ReportType.REPORT\n\n return {\n id: executionId,\n text: name || variantName || '',\n reportName,\n description,\n tag: 'MIS',\n summary,\n interactiveSummary,\n status,\n type,\n ...(status && setDataFromStatus(status, reportDataCopy)),\n meta: {\n reportId,\n id: variantId || id,\n executionId,\n tableId,\n status,\n type,\n dataProductDefinitionsPath,\n pollingUrl: url?.polling?.pathname,\n reportUrl: url?.report?.pathname,\n },\n }\n}\n\nconst formatTable = (data: FormattedUserReportData[], type: 'requested' | 'viewed') => {\n const rows = data.map((card: FormattedUserReportData) => {\n return formatTableRow(card, type)\n })\n\n return {\n rows,\n head: [\n { text: 'Product', classes: 'dpr-req-product-head' },\n { text: 'Filters', classes: 'dpr-req-filters-head' },\n { text: 'Status', classes: 'dpr-req-status-head' },\n { text: 'Actions', classes: 'dpr-req-actions-head' },\n ],\n }\n}\n\nconst formatTableRow = (data: FormattedUserReportData, type: 'requested' | 'viewed') => {\n let statusClass\n let itemActions = ''\n\n const { href, id, reportName, text, timestamp, type: reportType, status } = data\n if (href && id) {\n switch (status) {\n case RequestStatus.FAILED:\n statusClass = 'govuk-tag--red'\n itemActions = itemActionsHtml(href, id, type, status)\n break\n case RequestStatus.EXPIRED:\n statusClass = 'govuk-tag--grey'\n itemActions = itemActionsHtml(href, id, type, status)\n break\n case RequestStatus.ABORTED:\n statusClass = 'govuk-tag--orange'\n itemActions = itemActionsHtml(href, id, type, status)\n break\n case RequestStatus.READY:\n case RequestStatus.FINISHED:\n itemActions = `<a class=govuk-link govuk-link--no-visited-state dpr-type__${reportType}' href=\"${href}\">Go to ${reportType}</a>`\n statusClass = 'govuk-tag--green'\n break\n case RequestStatus.PICKED:\n case RequestStatus.SUBMITTED:\n case RequestStatus.STARTED:\n itemActions = `<a class='govuk-link govuk-link--no-visited-state dpr-type__${reportType}' href=\"${href}\">Go to status</a>`\n break\n default:\n break\n }\n }\n\n let filtersSummary = ''\n if (data.summary || data.interactiveSummary) {\n filtersSummary = createSummaryHtml(data)\n }\n\n return [\n {\n html: createListItemProduct(reportName, text, reportType, timestamp),\n },\n { html: filtersSummary },\n {\n html: `<strong class=\"govuk-tag dpr-request-status-tag ${statusClass}\">${status}</strong>`,\n classes: 'dpr-req-cell dpr-req-cell__status',\n },\n {\n html: `${itemActions}`,\n classes: 'dpr-req-cell dpr-req-cell__status',\n },\n ]\n}\n\nconst getTotals = (formattedCount: number, maxRows = 20) => {\n return {\n amount: formattedCount,\n shown: maxRows && formattedCount > maxRows ? maxRows : formattedCount,\n max: maxRows,\n }\n}\n\nconst createSummaryHtml = (data: FormattedUserReportData) => {\n const summaryHtml = data.summary\n ?.map((item) => `<li class=\"govuk-body-s dpr-query-summary\"><strong>${item.name}</strong>: ${item.value}</li>`)\n .join('')\n\n const interactiveSummaryHtml = data.interactiveSummary\n ?.map(\n (item) =>\n `<li class=\"govuk-body-s dpr-interactive-query-summary\"><strong>${item.name}</strong>: ${item.value}</li>`,\n )\n .join('')\n\n return `<ul class=\"dpr-card-group__item__filters-list govuk-!-margin-top-0 govuk-!-margin-bottom-0\">${summaryHtml}${interactiveSummaryHtml}</ul>`\n}\n\nconst getMeta = (formattedData: FormattedUserReportData[], res: Response): meta[] => {\n const { nestedBaseUrl } = LocalsHelper.getValues(res)\n\n return formattedData.map((d) => {\n return {\n reportId: d.meta?.reportId,\n id: d.meta.id,\n executionId: d.meta.executionId,\n tableId: d.meta.tableId,\n status: d.meta.status,\n requestedAt: d.meta.requestedAt,\n type: d.meta.type,\n dataProductDefinitionsPath: d.meta.dataProductDefinitionsPath,\n pollingUrl: d.meta.pollingUrl,\n reportUrl: d.meta.reportUrl,\n nestedBaseUrl,\n }\n })\n}\n\nexport const setDataFromStatus = (status: RequestStatus, reportsData: UserReportData) => {\n let timestamp\n let href\n let formattedDate\n const { url, timestamp: time } = reportsData\n const polling = url?.polling\n const request = url?.request\n const report = url?.report\n\n const dateMapper = new DateMapper()\n switch (status) {\n case RequestStatus.FAILED: {\n formattedDate = time.failed\n ? dateMapper.toDateString(<string>(<unknown>time.failed), 'local-date')\n : dayjs().format('DD/MM/YYYY')\n href = polling?.fullUrl\n timestamp = `Failed at: ${formattedDate}`\n break\n }\n case RequestStatus.ABORTED: {\n href = request?.fullUrl\n formattedDate = dateMapper.toDateString(<string>(<unknown>time.aborted), 'local-date')\n timestamp = `Aborted at: ${formattedDate}`\n break\n }\n case RequestStatus.FINISHED:\n href = report?.fullUrl\n formattedDate = dateMapper.toDateString(<string>(<unknown>time.completed), 'local-date')\n timestamp = `Ready at: ${formattedDate}`\n break\n case RequestStatus.EXPIRED: {\n href = request?.fullUrl\n formattedDate = dateMapper.toDateString(<string>(<unknown>time.expired), 'local-date')\n timestamp = `Expired at: ${formattedDate}`\n break\n }\n case RequestStatus.READY: {\n href = report?.fullUrl\n formattedDate = dateMapper.toDateString(<string>(<unknown>time.lastViewed), 'local-date')\n timestamp = `Last viewed: ${formattedDate}`\n break\n }\n case RequestStatus.SUBMITTED:\n case RequestStatus.STARTED:\n case RequestStatus.PICKED:\n href = polling?.fullUrl\n formattedDate = dateMapper.toDateString(<string>(<unknown>time.requested), 'local-date')\n timestamp = `Requested at: ${formattedDate}`\n break\n default:\n formattedDate = dateMapper.toDateString(<string>(<unknown>time.lastViewed), 'local-date')\n timestamp = `Last viewed: ${formattedDate}`\n break\n }\n\n return {\n timestamp,\n href,\n }\n}\n\nexport const renderList = async ({\n res,\n reportsData,\n maxRows,\n filterFunction,\n type,\n}: {\n res: Response\n reportsData: StoredReportData[]\n maxRows?: number\n filterFunction: (report: UserReportData) => boolean\n type: 'requested' | 'viewed'\n}): Promise<RenderTableListResponse> => {\n const { csrfToken } = LocalsHelper.getValues(res)\n\n let formatted = reportsData.filter(filterFunction).map(formatData)\n const formattedCount = formatted.length\n\n if (maxRows) formatted = formatted.slice(0, maxRows)\n const tableData = formatTable(formatted, type)\n\n const path = type === 'requested' ? 'requested-reports' : 'recently-viewed'\n const head = {\n ...(formatted.length && { href: `dpr/my-reports/${path}/list` }),\n ...(!formatted.length && { emptyMessage: `You have 0 ${type} reports` }),\n }\n\n const result: RenderTableListResponse = {\n head,\n tableData,\n total: getTotals(formattedCount, maxRows),\n meta: getMeta(formatted, res),\n csrfToken,\n ...(maxRows && { maxRows }),\n }\n\n return result\n}\n\nexport const updateExpiredStatus = async ({ req, res, services }: AsyncReportUtilsParams) => {\n const { dprUser } = LocalsHelper.getValues(res)\n const report = await getExpiredStatus({ req, res, services })\n\n if (report && report.isExpired) {\n await services.recentlyViewedService.setToExpired(report.executionId, dprUser.id)\n await services.requestedReportService.setToExpired(report.executionId, dprUser.id)\n }\n\n return report ? report.isExpired : false\n}\n\nexport const init = async ({ services, res, maxRows = 6 }: { services: Services; res: Response; maxRows?: number }) => {\n const { requestedReports, recentlyViewedReports, bookmarkingEnabled } = LocalsHelper.getValues(res)\n const requestedReportsList = await renderList({\n res,\n reportsData: requestedReports,\n filterFunction: RequestedReportUtils.filterReports,\n maxRows,\n type: 'requested',\n })\n const viewedReportsList = await renderList({\n res,\n reportsData: recentlyViewedReports,\n filterFunction: RecentlyViewedCardGroupUtils.filterReports,\n maxRows,\n type: 'viewed',\n })\n\n let bookmarks\n if (bookmarkingEnabled) {\n bookmarks = await BookmarklistUtils.renderBookmarkList({\n res,\n services,\n maxRows,\n })\n }\n\n return {\n requestedReports: requestedReportsList,\n viewedReports: viewedReportsList,\n bookmarks,\n }\n}\n\nexport const updateLastViewed = async ({\n req,\n services,\n reportStateData,\n userId,\n filters,\n}: {\n req: Request\n services: Services\n reportStateData: RequestedReport\n userId: string\n filters: FilterValue[]\n}) => {\n const { type, reportId, reportName, description, id, name, executionId, tableId, query, url } = reportStateData\n const reportData = { type, reportId, reportName, description, id, name }\n const executionData = { executionId, tableId }\n const queryData = query ? { query: query.data, querySummary: query.summary } : { query: {}, querySummary: [] }\n\n const columns = <string[]>req.query?.['columns']\n const { selectedPage, pageSize, sortColumn, sortedAsc } = <Dict<string>>req.query\n const filtersQuery = FiltersUtils.setRequestQueryFromFilterValues(filters, true)\n const reqQuery = {\n ...filtersQuery,\n ...(columns && { columns }),\n ...(selectedPage && { selectedPage }),\n ...(pageSize && { pageSize }),\n ...(sortColumn && { sortColumn }),\n ...(sortedAsc && { sortedAsc }),\n }\n const interactiveQueryData: { query: Dict<string | string[]>; querySummary: Array<Dict<string>> } = {\n query: reqQuery,\n querySummary: SelectedFiltersUtils.getQuerySummary(filtersQuery, filters),\n }\n\n const recentlyViewedData = new UserStoreItemBuilder(reportData)\n .addExecutionData(executionData)\n .addQuery(queryData)\n .addInteractiveQuery(interactiveQueryData)\n .addStatus(RequestStatus.READY)\n .addTimestamp()\n .addAsyncUrls(url)\n .addReportUrls(req)\n .build()\n\n if (executionId) await services.requestedReportService.updateLastViewed(executionId, userId)\n await services.recentlyViewedService.setRecentlyViewed(recentlyViewedData, userId)\n}\n\nexport default {\n renderList,\n updateExpiredStatus,\n init,\n updateLastViewed,\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { Response, Request } from 'express'\nimport dayjs from 'dayjs'\nimport { RenderTableListResponse } from './types'\nimport Dict = NodeJS.Dict\nimport {\n FormattedUserReportData,\n UserReportData,\n RequestStatus,\n ReportType,\n RequestedReport,\n StoredReportData,\n meta,\n} from '../../types/UserReports'\nimport { FilterValue } from '../_filters/types'\nimport { Services } from '../../types/Services'\n\nimport { AsyncReportUtilsParams } from '../../types/AsyncReportUtils'\nimport { getExpiredStatus } from '../../utils/requestStatusHelper'\nimport SelectedFiltersUtils from '../_filters/filters-selected/utils'\nimport FiltersUtils from '../_filters/utils'\nimport { itemActionsHtml, createListItemProduct } from '../../utils/reportListsHelper'\nimport RequestedReportUtils from './requested/utils'\nimport RecentlyViewedCardGroupUtils from './viewed/utils'\nimport BookmarklistUtils from './bookmarks/utils'\nimport LocalsHelper from '../../utils/localsHelper'\nimport DateMapper from '../../utils/DateMapper/DateMapper'\nimport UserStoreItemBuilder from '../../utils/UserStoreItemBuilder'\n\nconst formatData = (reportData: UserReportData): FormattedUserReportData => {\n const reportDataCopy: UserReportData = JSON.parse(JSON.stringify(reportData))\n\n const {\n executionId,\n tableId,\n variantName,\n name,\n reportId,\n variantId,\n id,\n description,\n query,\n interactiveQuery,\n status,\n reportName,\n dataProductDefinitionsPath,\n type: reportType,\n url,\n } = reportDataCopy\n\n let summary: { name: string; value: string }[] = []\n if (query) {\n summary = query.summary as { name: string; value: string }[]\n }\n let interactiveSummary: { name: string; value: string }[] = []\n if (interactiveQuery) {\n interactiveSummary = interactiveQuery.summary as { name: string; value: string }[]\n }\n\n const type = reportType || ReportType.REPORT\n\n return {\n id: executionId,\n text: name || variantName || '',\n reportName,\n description,\n tag: 'MIS',\n summary,\n interactiveSummary,\n status,\n type,\n ...(status && setDataFromStatus(status, reportDataCopy)),\n meta: {\n reportId,\n id: variantId || id,\n executionId,\n tableId,\n status,\n type,\n dataProductDefinitionsPath,\n pollingUrl: url?.polling?.pathname,\n reportUrl: url?.report?.pathname,\n },\n }\n}\n\nconst formatTable = (data: FormattedUserReportData[], type: 'requested' | 'viewed') => {\n const rows = data.map((card: FormattedUserReportData) => {\n return formatTableRow(card, type)\n })\n\n return {\n rows,\n head: [\n { text: 'Product', classes: 'dpr-req-product-head' },\n { text: 'Filters', classes: 'dpr-req-filters-head' },\n { text: 'Status', classes: 'dpr-req-status-head' },\n { text: 'Actions', classes: 'dpr-req-actions-head' },\n ],\n }\n}\n\nconst formatTableRow = (data: FormattedUserReportData, type: 'requested' | 'viewed') => {\n let statusClass\n let itemActions = ''\n\n const { href, id, reportName, text, timestamp, type: reportType, status } = data\n if (href) {\n switch (status) {\n case RequestStatus.FAILED:\n statusClass = 'govuk-tag--red'\n itemActions = id ? itemActionsHtml(href, id, type, status) : ''\n break\n case RequestStatus.EXPIRED:\n statusClass = 'govuk-tag--grey'\n itemActions = id ? itemActionsHtml(href, id, type, status) : ''\n break\n case RequestStatus.ABORTED:\n statusClass = 'govuk-tag--orange'\n itemActions = id ? itemActionsHtml(href, id, type, status) : ''\n break\n case RequestStatus.READY:\n case RequestStatus.FINISHED:\n itemActions = `<a class=govuk-link govuk-link--no-visited-state dpr-type__${reportType}' href=\"${href}\">Go to ${reportType}</a>`\n statusClass = 'govuk-tag--green'\n break\n case RequestStatus.PICKED:\n case RequestStatus.SUBMITTED:\n case RequestStatus.STARTED:\n itemActions = `<a class='govuk-link govuk-link--no-visited-state dpr-type__${reportType}' href=\"${href}\">Go to status</a>`\n break\n default:\n break\n }\n }\n\n let filtersSummary = ''\n if (data.summary || data.interactiveSummary) {\n filtersSummary = createSummaryHtml(data)\n }\n\n return [\n {\n html: createListItemProduct(reportName, text, reportType, timestamp),\n },\n { html: filtersSummary },\n {\n html: `<strong class=\"govuk-tag dpr-request-status-tag ${statusClass}\">${status}</strong>`,\n classes: 'dpr-req-cell dpr-req-cell__status',\n },\n {\n html: `${itemActions}`,\n classes: 'dpr-req-cell dpr-req-cell__status',\n },\n ]\n}\n\nconst getTotals = (formattedCount: number, maxRows = 20) => {\n return {\n amount: formattedCount,\n shown: maxRows && formattedCount > maxRows ? maxRows : formattedCount,\n max: maxRows,\n }\n}\n\nconst createSummaryHtml = (data: FormattedUserReportData) => {\n const summaryHtml = data.summary\n ?.map((item) => `<li class=\"govuk-body-s dpr-query-summary\"><strong>${item.name}</strong>: ${item.value}</li>`)\n .join('')\n\n const interactiveSummaryHtml = data.interactiveSummary\n ?.map(\n (item) =>\n `<li class=\"govuk-body-s dpr-interactive-query-summary\"><strong>${item.name}</strong>: ${item.value}</li>`,\n )\n .join('')\n\n return `<ul class=\"dpr-card-group__item__filters-list govuk-!-margin-top-0 govuk-!-margin-bottom-0\">${summaryHtml}${interactiveSummaryHtml}</ul>`\n}\n\nconst getMeta = (formattedData: FormattedUserReportData[], res: Response): meta[] => {\n const { nestedBaseUrl } = LocalsHelper.getValues(res)\n\n return formattedData.map((d) => {\n return {\n reportId: d.meta?.reportId,\n id: d.meta.id,\n executionId: d.meta.executionId,\n tableId: d.meta.tableId,\n status: d.meta.status,\n requestedAt: d.meta.requestedAt,\n type: d.meta.type,\n dataProductDefinitionsPath: d.meta.dataProductDefinitionsPath,\n pollingUrl: d.meta.pollingUrl,\n reportUrl: d.meta.reportUrl,\n nestedBaseUrl,\n }\n })\n}\n\nexport const setDataFromStatus = (status: RequestStatus, reportsData: UserReportData) => {\n let timestamp\n let href\n let formattedDate\n const { url, timestamp: time } = reportsData\n const polling = url?.polling\n const request = url?.request\n const report = url?.report\n\n const dateMapper = new DateMapper()\n switch (status) {\n case RequestStatus.FAILED: {\n formattedDate = time.failed\n ? dateMapper.toDateString(<string>(<unknown>time.failed), 'local-date')\n : dayjs().format('DD/MM/YYYY')\n href = polling?.fullUrl\n timestamp = `Failed at: ${formattedDate}`\n break\n }\n case RequestStatus.ABORTED: {\n href = request?.fullUrl\n formattedDate = dateMapper.toDateString(<string>(<unknown>time.aborted), 'local-date')\n timestamp = `Aborted at: ${formattedDate}`\n break\n }\n case RequestStatus.FINISHED:\n href = report?.fullUrl\n formattedDate = dateMapper.toDateString(<string>(<unknown>time.completed), 'local-date')\n timestamp = `Ready at: ${formattedDate}`\n break\n case RequestStatus.EXPIRED: {\n href = request?.fullUrl\n formattedDate = dateMapper.toDateString(<string>(<unknown>time.expired), 'local-date')\n timestamp = `Expired at: ${formattedDate}`\n break\n }\n case RequestStatus.READY: {\n href = report?.fullUrl\n formattedDate = dateMapper.toDateString(<string>(<unknown>time.lastViewed), 'local-date')\n timestamp = `Last viewed: ${formattedDate}`\n break\n }\n case RequestStatus.SUBMITTED:\n case RequestStatus.STARTED:\n case RequestStatus.PICKED:\n href = polling?.fullUrl\n formattedDate = dateMapper.toDateString(<string>(<unknown>time.requested), 'local-date')\n timestamp = `Requested at: ${formattedDate}`\n break\n default:\n formattedDate = dateMapper.toDateString(<string>(<unknown>time.lastViewed), 'local-date')\n timestamp = `Last viewed: ${formattedDate}`\n break\n }\n\n return {\n timestamp,\n href,\n }\n}\n\nexport const renderList = async ({\n res,\n reportsData,\n maxRows,\n filterFunction,\n type,\n}: {\n res: Response\n reportsData: StoredReportData[]\n maxRows?: number\n filterFunction: (report: UserReportData) => boolean\n type: 'requested' | 'viewed'\n}): Promise<RenderTableListResponse> => {\n const { csrfToken } = LocalsHelper.getValues(res)\n\n let formatted = reportsData.filter(filterFunction).map(formatData)\n const formattedCount = formatted.length\n\n if (maxRows) formatted = formatted.slice(0, maxRows)\n const tableData = formatTable(formatted, type)\n\n const path = type === 'requested' ? 'requested-reports' : 'recently-viewed'\n const head = {\n ...(formatted.length && { href: `dpr/my-reports/${path}/list` }),\n ...(!formatted.length && { emptyMessage: `You have 0 ${type} reports` }),\n }\n\n const result: RenderTableListResponse = {\n head,\n tableData,\n total: getTotals(formattedCount, maxRows),\n meta: getMeta(formatted, res),\n csrfToken,\n ...(maxRows && { maxRows }),\n }\n\n return result\n}\n\nexport const updateExpiredStatus = async ({ req, res, services }: AsyncReportUtilsParams) => {\n const { dprUser } = LocalsHelper.getValues(res)\n const report = await getExpiredStatus({ req, res, services })\n\n if (report && report.isExpired) {\n await services.recentlyViewedService.setToExpired(report.executionId, dprUser.id)\n await services.requestedReportService.setToExpired(report.executionId, dprUser.id)\n }\n\n return report ? report.isExpired : false\n}\n\nexport const init = async ({ services, res, maxRows = 6 }: { services: Services; res: Response; maxRows?: number }) => {\n const { requestedReports, recentlyViewedReports, bookmarkingEnabled } = LocalsHelper.getValues(res)\n const requestedReportsList = await renderList({\n res,\n reportsData: requestedReports,\n filterFunction: RequestedReportUtils.filterReports,\n maxRows,\n type: 'requested',\n })\n const viewedReportsList = await renderList({\n res,\n reportsData: recentlyViewedReports,\n filterFunction: RecentlyViewedCardGroupUtils.filterReports,\n maxRows,\n type: 'viewed',\n })\n\n let bookmarks\n if (bookmarkingEnabled) {\n bookmarks = await BookmarklistUtils.renderBookmarkList({\n res,\n services,\n maxRows,\n })\n }\n\n return {\n requestedReports: requestedReportsList,\n viewedReports: viewedReportsList,\n bookmarks,\n }\n}\n\nexport const updateLastViewed = async ({\n req,\n services,\n reportStateData,\n userId,\n filters,\n}: {\n req: Request\n services: Services\n reportStateData: RequestedReport\n userId: string\n filters: FilterValue[]\n}) => {\n const { type, reportId, reportName, description, id, name, executionId, tableId, query, url } = reportStateData\n const reportData = { type, reportId, reportName, description, id, name }\n const executionData = { executionId, tableId }\n const queryData = query ? { query: query.data, querySummary: query.summary } : { query: {}, querySummary: [] }\n\n const columns = <string[]>req.query?.['columns']\n const { selectedPage, pageSize, sortColumn, sortedAsc } = <Dict<string>>req.query\n const filtersQuery = FiltersUtils.setRequestQueryFromFilterValues(filters, true)\n const reqQuery = {\n ...filtersQuery,\n ...(columns && { columns }),\n ...(selectedPage && { selectedPage }),\n ...(pageSize && { pageSize }),\n ...(sortColumn && { sortColumn }),\n ...(sortedAsc && { sortedAsc }),\n }\n const interactiveQueryData: { query: Dict<string | string[]>; querySummary: Array<Dict<string>> } = {\n query: reqQuery,\n querySummary: SelectedFiltersUtils.getQuerySummary(filtersQuery, filters),\n }\n\n const recentlyViewedData = new UserStoreItemBuilder(reportData)\n .addExecutionData(executionData)\n .addQuery(queryData)\n .addInteractiveQuery(interactiveQueryData)\n .addStatus(RequestStatus.READY)\n .addTimestamp()\n .addAsyncUrls(url)\n .addReportUrls(req)\n .build()\n\n if (executionId) await services.requestedReportService.updateLastViewed(executionId, userId)\n await services.recentlyViewedService.setRecentlyViewed(recentlyViewedData, userId)\n}\n\nexport default {\n renderList,\n updateExpiredStatus,\n init,\n updateLastViewed,\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["utils_exports", "__export", "utils_default", "init", "renderList", "setDataFromStatus", "updateExpiredStatus", "updateLastViewed", "__toCommonJS", "import_dayjs", "import_UserReports", "import_requestStatusHelper", "import_utils", "import_reportListsHelper", "import_localsHelper", "import_DateMapper", "import_UserStoreItemBuilder", "formatData", "reportData", "reportDataCopy", "executionId", "tableId", "variantName", "name", "reportId", "variantId", "id", "description", "query", "interactiveQuery", "status", "reportName", "dataProductDefinitionsPath", "reportType", "url", "summary", "interactiveSummary", "type", "formatTable", "data", "card", "formatTableRow", "statusClass", "itemActions", "href", "text", "timestamp", "filtersSummary", "createSummaryHtml", "getTotals", "formattedCount", "maxRows", "summaryHtml", "item", "interactiveSummaryHtml", "getMeta", "formattedData", "res", "nestedBaseUrl", "LocalsHelper", "d", "reportsData", "formattedDate", "time", "polling", "request", "report", "dateMapper", "DateMapper", "dayjs", "filterFunction", "csrfToken", "formatted", "tableData", "path", "req", "services", "dprUser", "requestedReports", "recentlyViewedReports", "bookmarkingEnabled", "requestedReportsList", "RequestedReportUtils", "viewedReportsList", "RecentlyViewedCardGroupUtils", "bookmarks", "BookmarklistUtils", "reportStateData", "userId", "filters", "executionData", "queryData", "columns", "selectedPage", "pageSize", "sortColumn", "sortedAsc", "filtersQuery", "FiltersUtils", "interactiveQueryData", "SelectedFiltersUtils", "recentlyViewedData", "UserStoreItemBuilder"]
7
7
  }
@@ -104,19 +104,19 @@ const formatTableRow = (data: FormattedUserReportData, type: 'requested' | 'view
104
104
  let itemActions = ''
105
105
 
106
106
  const { href, id, reportName, text, timestamp, type: reportType, status } = data
107
- if (href && id) {
107
+ if (href) {
108
108
  switch (status) {
109
109
  case RequestStatus.FAILED:
110
110
  statusClass = 'govuk-tag--red'
111
- itemActions = itemActionsHtml(href, id, type, status)
111
+ itemActions = id ? itemActionsHtml(href, id, type, status) : ''
112
112
  break
113
113
  case RequestStatus.EXPIRED:
114
114
  statusClass = 'govuk-tag--grey'
115
- itemActions = itemActionsHtml(href, id, type, status)
115
+ itemActions = id ? itemActionsHtml(href, id, type, status) : ''
116
116
  break
117
117
  case RequestStatus.ABORTED:
118
118
  statusClass = 'govuk-tag--orange'
119
- itemActions = itemActionsHtml(href, id, type, status)
119
+ itemActions = id ? itemActionsHtml(href, id, type, status) : ''
120
120
  break
121
121
  case RequestStatus.READY:
122
122
  case RequestStatus.FINISHED:
@@ -1,2 +1,2 @@
1
- "use strict";var D=Object.create;var a=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var b=Object.getPrototypeOf,C=Object.prototype.hasOwnProperty;var $=(e,s)=>{for(var t in s)a(e,t,{get:s[t],enumerable:!0})},m=(e,s,t,i)=>{if(s&&typeof s=="object"||typeof s=="function")for(let n of p(s))!C.call(e,n)&&n!==t&&a(e,n,{get:()=>s[n],enumerable:!(i=u(s,n))||i.enumerable});return e};var l=(e,s,t)=>(t=e!=null?D(b(e)):{},m(s||!e||!e.__esModule?a(t,"default",{value:e,enumerable:!0}):t,e)),y=e=>m(a({},"__esModule",{value:!0}),e);var R={};$(R,{DashboardClient:()=>c,default:()=>d});module.exports=y(R);var h=l(require("../utils/logger")),f=l(require("./restClient"));class c{constructor(s){this.restClient=new f.default("Dashboard API Client",s)}getDefinition(s,t,i,n,r){const o={...r,dataProductDefinitionsPath:n};return this.logInfo("Get definition:",{dpdId:i,dashboardId:t,...o}),this.restClient.get({path:`/definitions/${i}/dashboards/${t}`,query:o,token:s}).then(g=>g)}requestAsyncDashboard(s,t,i,n){return this.logInfo("Request dashboard:",{reportId:t,dashboardId:i}),this.restClient.get({path:`/async/dashboards/${t}/${i}`,token:s,query:n}).then(r=>r)}getAsyncDashboard(s,t,i,n,r){return this.logInfo("Get dashboard:",{reportId:t,dashboardId:i,tableId:n}),this.restClient.get({path:`/reports/${t}/dashboards/${i}/tables/${n}/result`,token:s,query:r}).then(o=>o)}getAsyncStatus(s,t,i,n,r,o){return this.logInfo("Get status:",{reportId:t,dashboardId:i,executionId:n,tableId:r}),this.restClient.get({path:`/reports/${t}/dashboards/${i}/statements/${n}/status`,token:s,query:{dataProductDefinitionsPath:o,tableId:r}}).then(g=>g)}cancelAsyncRequest(s,t,i,n,r){return this.logInfo("Cancel request:",{reportId:t,dashboardId:i,executionId:n}),this.restClient.delete({path:`/reports/${t}/dashboards/${i}/statements/${n}`,token:s,query:{dataProductDefinitionsPath:r}}).then(o=>o)}logInfo(s,t){h.default.info(`Dashboard client: ${s}:`),t&&Object.keys(t).length&&h.default.info(JSON.stringify(t,null,2))}}var d=c;0&&(module.exports={DashboardClient});
1
+ "use strict";var f=Object.create;var a=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var b=Object.getPrototypeOf,$=Object.prototype.hasOwnProperty;var C=(i,s)=>{for(var t in s)a(i,t,{get:s[t],enumerable:!0})},m=(i,s,t,n)=>{if(s&&typeof s=="object"||typeof s=="function")for(let e of p(s))!$.call(i,e)&&e!==t&&a(i,e,{get:()=>s[e],enumerable:!(n=u(s,e))||n.enumerable});return i};var l=(i,s,t)=>(t=i!=null?f(b(i)):{},m(s||!i||!i.__esModule?a(t,"default",{value:i,enumerable:!0}):t,i)),d=i=>m(a({},"__esModule",{value:!0}),i);var y={};C(y,{DashboardClient:()=>c,default:()=>R});module.exports=d(y);var h=l(require("../utils/logger")),D=l(require("./restClient"));class c{constructor(s){this.restClient=new D.default("Dashboard API Client",s)}getDefinition(s,t,n,e,r){const o={...r,dataProductDefinitionsPath:e};return this.logInfo("Get definition:",{dpdId:n,dashboardId:t,...o}),this.restClient.get({path:`/definitions/${n}/dashboards/${t}`,query:o,token:s}).then(g=>g)}requestAsyncDashboard(s,t,n,e){return this.logInfo("Request dashboard:",{reportId:t,dashboardId:n}),this.restClient.get({path:`/async/dashboards/${t}/${n}`,token:s,query:e}).then(r=>r)}getAsyncDashboard(s,t,n,e,r){return this.logInfo("Get dashboard:",{reportId:t,dashboardId:n,tableId:e}),this.restClient.get({path:`/reports/${t}/dashboards/${n}/tables/${e}/result`,token:s,query:r}).then(o=>o)}getAsyncStatus(s,t,n,e,r,o){return this.logInfo("Get status:",{reportId:t,dashboardId:n,executionId:e,tableId:r}),this.restClient.get({path:`/reports/${t}/dashboards/${n}/statements/${e}/status`,token:s,query:{dataProductDefinitionsPath:o,tableId:r}}).then(g=>g)}cancelAsyncRequest(s,t,n,e,r){return this.logInfo("Cancel request:",{reportId:t,dashboardId:n,executionId:e}),this.restClient.delete({path:`/reports/${t}/dashboards/${n}/statements/${e}`,token:s,query:{dataProductDefinitionsPath:r}}).then(o=>o)}getSyncDashboard(s,t,n,e){return this.logInfo("Get dashboard:",{reportId:t,dashboardId:n}),this.restClient.get({path:`/reports/${t}/dashboards/${n}`,token:s,query:e}).then(r=>r)}logInfo(s,t){h.default.info(`Dashboard client: ${s}:`),t&&Object.keys(t).length&&h.default.info(JSON.stringify(t,null,2))}}var R=c;0&&(module.exports={DashboardClient});
2
2
  //# sourceMappingURL=dashboardClient.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/dpr/data/dashboardClient.ts"],
4
- "sourcesContent": ["import logger from '../utils/logger'\nimport RestClient from './restClient'\nimport Dict = NodeJS.Dict\nimport { ApiConfig } from './types'\nimport { components } from '../types/api'\nimport { DashboardDataResponse } from '../types/Metrics'\n\nclass DashboardClient {\n restClient: RestClient\n\n constructor(config: ApiConfig) {\n this.restClient = new RestClient('Dashboard API Client', config)\n }\n\n getDefinition(\n token: string,\n dashboardId: string,\n dpdId: string,\n definitionsPath?: string,\n queryData?: Dict<string | string[]> | undefined,\n ): Promise<components['schemas']['DashboardDefinition']> {\n const query = {\n ...queryData,\n dataProductDefinitionsPath: definitionsPath,\n }\n this.logInfo('Get definition:', { dpdId, dashboardId, ...query })\n\n return this.restClient\n .get({\n path: `/definitions/${dpdId}/dashboards/${dashboardId}`,\n query,\n token,\n })\n .then((response) => <components['schemas']['DashboardDefinition']>response)\n }\n\n requestAsyncDashboard(\n token: string,\n reportId: string,\n dashboardId: string,\n query: Record<string, string | boolean | number>,\n ): Promise<Dict<string>> {\n this.logInfo('Request dashboard:', { reportId, dashboardId })\n\n return this.restClient\n .get({\n path: `/async/dashboards/${reportId}/${dashboardId}`,\n token,\n query,\n })\n .then((response) => <Dict<string>>response)\n }\n\n getAsyncDashboard(\n token: string,\n reportId: string,\n dashboardId: string,\n tableId: string,\n query: Record<string, string | string[]>,\n ): Promise<DashboardDataResponse[][]> {\n this.logInfo('Get dashboard:', { reportId, dashboardId, tableId })\n\n return this.restClient\n .get({\n path: `/reports/${reportId}/dashboards/${dashboardId}/tables/${tableId}/result`,\n token,\n query,\n })\n .then((response) => <DashboardDataResponse[][]>response)\n }\n\n getAsyncStatus(\n token: string,\n reportId: string,\n dashboardId: string,\n executionId: string,\n tableId?: string,\n dataProductDefinitionsPath?: string,\n ): Promise<components['schemas']['StatementExecutionStatus']> {\n this.logInfo('Get status:', { reportId, dashboardId, executionId, tableId })\n\n return this.restClient\n .get({\n path: `/reports/${reportId}/dashboards/${dashboardId}/statements/${executionId}/status`,\n token,\n query: {\n dataProductDefinitionsPath,\n tableId,\n },\n })\n .then((response) => <components['schemas']['StatementExecutionStatus']>response)\n }\n\n cancelAsyncRequest(\n token: string,\n reportId: string,\n dashboardId: string,\n executionId: string,\n dataProductDefinitionsPath?: string,\n ): Promise<Dict<string>> {\n this.logInfo('Cancel request:', { reportId, dashboardId, executionId })\n\n return this.restClient\n .delete({\n path: `/reports/${reportId}/dashboards/${dashboardId}/statements/${executionId}`,\n token,\n query: {\n dataProductDefinitionsPath,\n },\n })\n .then((response) => <Dict<string>>response)\n }\n\n logInfo(title: string, args?: Dict<string>) {\n logger.info(`Dashboard client: ${title}:`)\n if (args && Object.keys(args).length) logger.info(JSON.stringify(args, null, 2))\n }\n}\n\nexport { DashboardClient }\nexport default DashboardClient\n"],
5
- "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAAA,IAAAK,EAAmB,8BACnBC,EAAuB,2BAMvB,MAAMJ,CAAgB,CAGpB,YAAYK,EAAmB,CAC7B,KAAK,WAAa,IAAI,EAAAC,QAAW,uBAAwBD,CAAM,CACjE,CAEA,cACEE,EACAC,EACAC,EACAC,EACAC,EACuD,CACvD,MAAMC,EAAQ,CACZ,GAAGD,EACH,2BAA4BD,CAC9B,EACA,YAAK,QAAQ,kBAAmB,CAAE,MAAAD,EAAO,YAAAD,EAAa,GAAGI,CAAM,CAAC,EAEzD,KAAK,WACT,IAAI,CACH,KAAM,gBAAgBH,CAAK,eAAeD,CAAW,GACrD,MAAAI,EACA,MAAAL,CACF,CAAC,EACA,KAAMM,GAA2DA,CAAQ,CAC9E,CAEA,sBACEN,EACAO,EACAN,EACAI,EACuB,CACvB,YAAK,QAAQ,qBAAsB,CAAE,SAAAE,EAAU,YAAAN,CAAY,CAAC,EAErD,KAAK,WACT,IAAI,CACH,KAAM,qBAAqBM,CAAQ,IAAIN,CAAW,GAClD,MAAAD,EACA,MAAAK,CACF,CAAC,EACA,KAAMC,GAA2BA,CAAQ,CAC9C,CAEA,kBACEN,EACAO,EACAN,EACAO,EACAH,EACoC,CACpC,YAAK,QAAQ,iBAAkB,CAAE,SAAAE,EAAU,YAAAN,EAAa,QAAAO,CAAQ,CAAC,EAE1D,KAAK,WACT,IAAI,CACH,KAAM,YAAYD,CAAQ,eAAeN,CAAW,WAAWO,CAAO,UACtE,MAAAR,EACA,MAAAK,CACF,CAAC,EACA,KAAMC,GAAwCA,CAAQ,CAC3D,CAEA,eACEN,EACAO,EACAN,EACAQ,EACAD,EACAE,EAC4D,CAC5D,YAAK,QAAQ,cAAe,CAAE,SAAAH,EAAU,YAAAN,EAAa,YAAAQ,EAAa,QAAAD,CAAQ,CAAC,EAEpE,KAAK,WACT,IAAI,CACH,KAAM,YAAYD,CAAQ,eAAeN,CAAW,eAAeQ,CAAW,UAC9E,MAAAT,EACA,MAAO,CACL,2BAAAU,EACA,QAAAF,CACF,CACF,CAAC,EACA,KAAMF,GAAgEA,CAAQ,CACnF,CAEA,mBACEN,EACAO,EACAN,EACAQ,EACAC,EACuB,CACvB,YAAK,QAAQ,kBAAmB,CAAE,SAAAH,EAAU,YAAAN,EAAa,YAAAQ,CAAY,CAAC,EAE/D,KAAK,WACT,OAAO,CACN,KAAM,YAAYF,CAAQ,eAAeN,CAAW,eAAeQ,CAAW,GAC9E,MAAAT,EACA,MAAO,CACL,2BAAAU,CACF,CACF,CAAC,EACA,KAAMJ,GAA2BA,CAAQ,CAC9C,CAEA,QAAQK,EAAeC,EAAqB,CAC1C,EAAAC,QAAO,KAAK,qBAAqBF,CAAK,GAAG,EACrCC,GAAQ,OAAO,KAAKA,CAAI,EAAE,QAAQ,EAAAC,QAAO,KAAK,KAAK,UAAUD,EAAM,KAAM,CAAC,CAAC,CACjF,CACF,CAGA,IAAOlB,EAAQD",
4
+ "sourcesContent": ["import logger from '../utils/logger'\nimport RestClient from './restClient'\nimport Dict = NodeJS.Dict\nimport { ApiConfig } from './types'\nimport { components } from '../types/api'\nimport { DashboardDataResponse } from '../types/Metrics'\n\nclass DashboardClient {\n restClient: RestClient\n\n constructor(config: ApiConfig) {\n this.restClient = new RestClient('Dashboard API Client', config)\n }\n\n getDefinition(\n token: string,\n dashboardId: string,\n dpdId: string,\n definitionsPath?: string,\n queryData?: Dict<string | string[]> | undefined,\n ): Promise<components['schemas']['DashboardDefinition']> {\n const query = {\n ...queryData,\n dataProductDefinitionsPath: definitionsPath,\n }\n this.logInfo('Get definition:', { dpdId, dashboardId, ...query })\n\n return this.restClient\n .get({\n path: `/definitions/${dpdId}/dashboards/${dashboardId}`,\n query,\n token,\n })\n .then((response) => <components['schemas']['DashboardDefinition']>response)\n }\n\n requestAsyncDashboard(\n token: string,\n reportId: string,\n dashboardId: string,\n query: Record<string, string | boolean | number>,\n ): Promise<Dict<string>> {\n this.logInfo('Request dashboard:', { reportId, dashboardId })\n\n return this.restClient\n .get({\n path: `/async/dashboards/${reportId}/${dashboardId}`,\n token,\n query,\n })\n .then((response) => <Dict<string>>response)\n }\n\n getAsyncDashboard(\n token: string,\n reportId: string,\n dashboardId: string,\n tableId: string,\n query: Record<string, string | string[]>,\n ): Promise<DashboardDataResponse[][]> {\n this.logInfo('Get dashboard:', { reportId, dashboardId, tableId })\n\n return this.restClient\n .get({\n path: `/reports/${reportId}/dashboards/${dashboardId}/tables/${tableId}/result`,\n token,\n query,\n })\n .then((response) => <DashboardDataResponse[][]>response)\n }\n\n getAsyncStatus(\n token: string,\n reportId: string,\n dashboardId: string,\n executionId: string,\n tableId?: string,\n dataProductDefinitionsPath?: string,\n ): Promise<components['schemas']['StatementExecutionStatus']> {\n this.logInfo('Get status:', { reportId, dashboardId, executionId, tableId })\n\n return this.restClient\n .get({\n path: `/reports/${reportId}/dashboards/${dashboardId}/statements/${executionId}/status`,\n token,\n query: {\n dataProductDefinitionsPath,\n tableId,\n },\n })\n .then((response) => <components['schemas']['StatementExecutionStatus']>response)\n }\n\n cancelAsyncRequest(\n token: string,\n reportId: string,\n dashboardId: string,\n executionId: string,\n dataProductDefinitionsPath?: string,\n ): Promise<Dict<string>> {\n this.logInfo('Cancel request:', { reportId, dashboardId, executionId })\n\n return this.restClient\n .delete({\n path: `/reports/${reportId}/dashboards/${dashboardId}/statements/${executionId}`,\n token,\n query: {\n dataProductDefinitionsPath,\n },\n })\n .then((response) => <Dict<string>>response)\n }\n\n getSyncDashboard(\n token: string,\n reportId: string,\n dashboardId: string,\n query: Record<string, string | string[]>,\n ): Promise<DashboardDataResponse[][]> {\n this.logInfo('Get dashboard:', { reportId, dashboardId })\n\n return this.restClient\n .get({\n path: `/reports/${reportId}/dashboards/${dashboardId}`,\n token,\n query,\n })\n .then((response) => <DashboardDataResponse[][]>response)\n }\n\n logInfo(title: string, args?: Dict<string>) {\n logger.info(`Dashboard client: ${title}:`)\n if (args && Object.keys(args).length) logger.info(JSON.stringify(args, null, 2))\n }\n}\n\nexport { DashboardClient }\nexport default DashboardClient\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAAA,IAAAK,EAAmB,8BACnBC,EAAuB,2BAMvB,MAAMJ,CAAgB,CAGpB,YAAYK,EAAmB,CAC7B,KAAK,WAAa,IAAI,EAAAC,QAAW,uBAAwBD,CAAM,CACjE,CAEA,cACEE,EACAC,EACAC,EACAC,EACAC,EACuD,CACvD,MAAMC,EAAQ,CACZ,GAAGD,EACH,2BAA4BD,CAC9B,EACA,YAAK,QAAQ,kBAAmB,CAAE,MAAAD,EAAO,YAAAD,EAAa,GAAGI,CAAM,CAAC,EAEzD,KAAK,WACT,IAAI,CACH,KAAM,gBAAgBH,CAAK,eAAeD,CAAW,GACrD,MAAAI,EACA,MAAAL,CACF,CAAC,EACA,KAAMM,GAA2DA,CAAQ,CAC9E,CAEA,sBACEN,EACAO,EACAN,EACAI,EACuB,CACvB,YAAK,QAAQ,qBAAsB,CAAE,SAAAE,EAAU,YAAAN,CAAY,CAAC,EAErD,KAAK,WACT,IAAI,CACH,KAAM,qBAAqBM,CAAQ,IAAIN,CAAW,GAClD,MAAAD,EACA,MAAAK,CACF,CAAC,EACA,KAAMC,GAA2BA,CAAQ,CAC9C,CAEA,kBACEN,EACAO,EACAN,EACAO,EACAH,EACoC,CACpC,YAAK,QAAQ,iBAAkB,CAAE,SAAAE,EAAU,YAAAN,EAAa,QAAAO,CAAQ,CAAC,EAE1D,KAAK,WACT,IAAI,CACH,KAAM,YAAYD,CAAQ,eAAeN,CAAW,WAAWO,CAAO,UACtE,MAAAR,EACA,MAAAK,CACF,CAAC,EACA,KAAMC,GAAwCA,CAAQ,CAC3D,CAEA,eACEN,EACAO,EACAN,EACAQ,EACAD,EACAE,EAC4D,CAC5D,YAAK,QAAQ,cAAe,CAAE,SAAAH,EAAU,YAAAN,EAAa,YAAAQ,EAAa,QAAAD,CAAQ,CAAC,EAEpE,KAAK,WACT,IAAI,CACH,KAAM,YAAYD,CAAQ,eAAeN,CAAW,eAAeQ,CAAW,UAC9E,MAAAT,EACA,MAAO,CACL,2BAAAU,EACA,QAAAF,CACF,CACF,CAAC,EACA,KAAMF,GAAgEA,CAAQ,CACnF,CAEA,mBACEN,EACAO,EACAN,EACAQ,EACAC,EACuB,CACvB,YAAK,QAAQ,kBAAmB,CAAE,SAAAH,EAAU,YAAAN,EAAa,YAAAQ,CAAY,CAAC,EAE/D,KAAK,WACT,OAAO,CACN,KAAM,YAAYF,CAAQ,eAAeN,CAAW,eAAeQ,CAAW,GAC9E,MAAAT,EACA,MAAO,CACL,2BAAAU,CACF,CACF,CAAC,EACA,KAAMJ,GAA2BA,CAAQ,CAC9C,CAEA,iBACEN,EACAO,EACAN,EACAI,EACoC,CACpC,YAAK,QAAQ,iBAAkB,CAAE,SAAAE,EAAU,YAAAN,CAAY,CAAC,EAEjD,KAAK,WACT,IAAI,CACH,KAAM,YAAYM,CAAQ,eAAeN,CAAW,GACpD,MAAAD,EACA,MAAAK,CACF,CAAC,EACA,KAAMC,GAAwCA,CAAQ,CAC3D,CAEA,QAAQK,EAAeC,EAAqB,CAC1C,EAAAC,QAAO,KAAK,qBAAqBF,CAAK,GAAG,EACrCC,GAAQ,OAAO,KAAKA,CAAI,EAAE,QAAQ,EAAAC,QAAO,KAAK,KAAK,UAAUD,EAAM,KAAM,CAAC,CAAC,CACjF,CACF,CAGA,IAAOlB,EAAQD",
6
6
  "names": ["dashboardClient_exports", "__export", "DashboardClient", "dashboardClient_default", "__toCommonJS", "import_logger", "import_restClient", "config", "RestClient", "token", "dashboardId", "dpdId", "definitionsPath", "queryData", "query", "response", "reportId", "tableId", "executionId", "dataProductDefinitionsPath", "title", "args", "logger"]
7
7
  }
@@ -111,6 +111,23 @@ class DashboardClient {
111
111
  .then((response) => <Dict<string>>response)
112
112
  }
113
113
 
114
+ getSyncDashboard(
115
+ token: string,
116
+ reportId: string,
117
+ dashboardId: string,
118
+ query: Record<string, string | string[]>,
119
+ ): Promise<DashboardDataResponse[][]> {
120
+ this.logInfo('Get dashboard:', { reportId, dashboardId })
121
+
122
+ return this.restClient
123
+ .get({
124
+ path: `/reports/${reportId}/dashboards/${dashboardId}`,
125
+ token,
126
+ query,
127
+ })
128
+ .then((response) => <DashboardDataResponse[][]>response)
129
+ }
130
+
114
131
  logInfo(title: string, args?: Dict<string>) {
115
132
  logger.info(`Dashboard client: ${title}:`)
116
133
  if (args && Object.keys(args).length) logger.info(JSON.stringify(args, null, 2))
@@ -1,2 +1,2 @@
1
- "use strict";var y=Object.create;var u=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var C=Object.getPrototypeOf,D=Object.prototype.hasOwnProperty;var $=(s,e)=>{for(var t in e)u(s,t,{get:e[t],enumerable:!0})},c=(s,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of R(e))!D.call(s,i)&&i!==t&&u(s,i,{get:()=>e[i],enumerable:!(n=f(e,i))||n.enumerable});return s};var m=(s,e,t)=>(t=s!=null?y(C(s)):{},c(e||!s||!s.__esModule?u(t,"default",{value:s,enumerable:!0}):t,s)),P=s=>c(u({},"__esModule",{value:!0}),s);var q={};$(q,{ReportingClient:()=>h,default:()=>A});module.exports=P(q);var a=m(require("../utils/logger")),l=m(require("./restClient"));class h{constructor(e){this.restClient=new l.default("Reporting API Client",e)}getCount(e,t,n){return a.default.info(`Reporting client: Get count. { resourceName: ${e} }`),this.restClient.get({path:`/${e}/count`,query:n.toRecordWithFilterPrefix(!0),token:t}).then(i=>i.count)}getList(e,t,n){return this.getListWithWarnings(e,t,n).then(i=>i.data)}getListWithWarnings(e,t,n){return a.default.info(`Reporting client: Get list. { resourceName: ${e} }`),this.restClient.getWithHeaders({path:`/${e}`,query:n.toRecordWithFilterPrefix(!0),token:t}).then(i=>({data:i.data,warnings:{noDataAvailable:i.headers["x-no-data-warning"]}}))}getDefinitionSummary(e,t,n){this.logInfo("Get definition summary",{reportId:t});const i={...n&&{dataProductDefinitionsPath:n}};return this.restClient.get({path:`/definitions/${t}`,query:i,token:e}).then(r=>r)}getDefinitions(e,t){this.logInfo("Get definitions");const n={renderMethod:"HTML",...t&&{dataProductDefinitionsPath:t}};return this.restClient.get({path:"/definitions",query:n,token:e}).then(i=>i)}getDefinition(e,t,n,i,r){const o={...r,dataProductDefinitionsPath:i};return this.logInfo("Get definition",{reportId:t,variantId:n,...o}),this.restClient.get({path:`/definitions/${t}/${n}`,query:o,token:e}).then(g=>g)}getFieldValues({token:e,definitionName:t,variantName:n,fieldName:i,prefix:r,definitionsPath:o}){const g={dataProductDefinitionsPath:o,prefix:r};return this.logInfo("Get field values",{definitionName:t,variantName:n,fieldName:i,prefix:r}),this.restClient.get({path:`/reports/${t}/${n}/${i}`,token:e,query:g}).then(p=>p)}requestAsyncReport(e,t,n,i){return this.logInfo("Request report",{reportId:t,variantId:n}),this.restClient.get({path:`/async/reports/${t}/${n}`,token:e,query:i}).then(r=>r)}cancelAsyncRequest(e,t,n,i,r){return this.logInfo("Cancel Request",{reportId:t,variantId:n,executionId:i}),this.restClient.delete({path:`/reports/${t}/${n}/statements/${i}`,token:e,query:{dataProductDefinitionsPath:r}}).then(o=>o)}getAsyncReport(e,t,n,i,r){return this.logInfo("Get Data",{reportId:t,variantId:n,tableId:i}),this.restClient.get({path:`/reports/${t}/${n}/tables/${i}/result`,token:e,query:r}).then(o=>o)}getAsyncSummaryReport(e,t,n,i,r,o){return this.logInfo("Get summary data",{reportId:t,variantId:n,tableId:i,summaryId:r}),this.restClient.get({path:`/reports/${t}/${n}/tables/${i}/result/summary/${r}`,token:e,query:o}).then(g=>g)}getAsyncReportStatus(e,t,n,i,r,o){return this.logInfo("Get status",{reportId:t,variantId:n,tableId:o,executionId:i}),this.restClient.get({path:`/reports/${t}/${n}/statements/${i}/status`,token:e,query:{dataProductDefinitionsPath:r,tableId:o}}).then(g=>g)}getAsyncCount(e,t,n){return this.logInfo("Get count",{tableId:t}),this.restClient.get({path:`/report/tables/${t}/count`,token:e,query:{dataProductDefinitionsPath:n}}).then(i=>i.count)}getAsyncInteractiveCount(e,t,n,i,r){return this.logInfo("Get interactive count",{tableId:t,reportId:n,id:i}),this.restClient.get({path:`/reports/${n}/${i}/tables/${t}/count`,token:e,query:r.toRecordWithFilterPrefix(!0)}).then(o=>o.count)}logInfo(e,t){a.default.info(`Reporting Client: ${e}:`),t&&Object.keys(t).length&&a.default.info(JSON.stringify(t,null,2))}}var A=h;0&&(module.exports={ReportingClient});
1
+ "use strict";var l=Object.create;var u=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var R=Object.getPrototypeOf,C=Object.prototype.hasOwnProperty;var D=(s,e)=>{for(var t in e)u(s,t,{get:e[t],enumerable:!0})},c=(s,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of y(e))!C.call(s,n)&&n!==t&&u(s,n,{get:()=>e[n],enumerable:!(i=f(e,n))||i.enumerable});return s};var h=(s,e,t)=>(t=s!=null?l(R(s)):{},c(e||!s||!s.__esModule?u(t,"default",{value:s,enumerable:!0}):t,s)),$=s=>c(u({},"__esModule",{value:!0}),s);var A={};D(A,{ReportingClient:()=>m,default:()=>P});module.exports=$(A);var a=h(require("../utils/logger")),p=h(require("./restClient"));class m{constructor(e){this.restClient=new p.default("Reporting API Client",e)}getCount(e,t,i){return a.default.info(`Reporting client: Get count. { resourceName: ${e} }`),this.restClient.get({path:`/${e}/count`,query:i.toRecordWithFilterPrefix(!0),token:t}).then(n=>n.count)}getList(e,t,i){return this.getListWithWarnings(e,t,i).then(n=>n.data)}getListWithWarnings(e,t,i){return a.default.info(`Reporting client: Get list. { resourceName: ${e} }`),this.restClient.getWithHeaders({path:`/${e}`,query:i.toRecordWithFilterPrefix(!0),token:t}).then(n=>({data:n.data,warnings:{noDataAvailable:n.headers["x-no-data-warning"]}}))}getDefinitionSummary(e,t,i){this.logInfo("Get definition summary",{reportId:t});const n={...i&&{dataProductDefinitionsPath:i}};return this.restClient.get({path:`/definitions/${t}`,query:n,token:e}).then(r=>r)}getDefinitions(e,t){this.logInfo("Get definitions");const i={renderMethod:"HTML",...t&&{dataProductDefinitionsPath:t}};return this.restClient.get({path:"/definitions",query:i,token:e}).then(n=>n)}getDefinition(e,t,i,n,r){const o={...r,dataProductDefinitionsPath:n};return this.logInfo("Get definition",{reportId:t,variantId:i,...o}),this.restClient.get({path:`/definitions/${t}/${i}`,query:o,token:e}).then(g=>g)}requestAsyncReport(e,t,i,n){return this.logInfo("Request report",{reportId:t,variantId:i}),this.restClient.get({path:`/async/reports/${t}/${i}`,token:e,query:n}).then(r=>r)}cancelAsyncRequest(e,t,i,n,r){return this.logInfo("Cancel Request",{reportId:t,variantId:i,executionId:n}),this.restClient.delete({path:`/reports/${t}/${i}/statements/${n}`,token:e,query:{dataProductDefinitionsPath:r}}).then(o=>o)}getAsyncReport(e,t,i,n,r){return this.logInfo("Get Data",{reportId:t,variantId:i,tableId:n}),this.restClient.get({path:`/reports/${t}/${i}/tables/${n}/result`,token:e,query:r}).then(o=>o)}getAsyncSummaryReport(e,t,i,n,r,o){return this.logInfo("Get summary data",{reportId:t,variantId:i,tableId:n,summaryId:r}),this.restClient.get({path:`/reports/${t}/${i}/tables/${n}/result/summary/${r}`,token:e,query:o}).then(g=>g)}getAsyncReportStatus(e,t,i,n,r,o){return this.logInfo("Get status",{reportId:t,variantId:i,tableId:o,executionId:n}),this.restClient.get({path:`/reports/${t}/${i}/statements/${n}/status`,token:e,query:{dataProductDefinitionsPath:r,tableId:o}}).then(g=>g)}getAsyncCount(e,t,i){return this.logInfo("Get count",{tableId:t}),this.restClient.get({path:`/report/tables/${t}/count`,token:e,query:{dataProductDefinitionsPath:i}}).then(n=>n.count)}getAsyncInteractiveCount(e,t,i,n,r){return this.logInfo("Get interactive count",{tableId:t,reportId:i,id:n}),this.restClient.get({path:`/reports/${i}/${n}/tables/${t}/count`,token:e,query:r.toRecordWithFilterPrefix(!0)}).then(o=>o.count)}logInfo(e,t){a.default.info(`Reporting Client: ${e}:`),t&&Object.keys(t).length&&a.default.info(JSON.stringify(t,null,2))}}var P=m;0&&(module.exports={ReportingClient});
2
2
  //# sourceMappingURL=reportingClient.js.map