@isoftdata/utility-dashboard-backend 1.0.2 → 1.1.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 (2) hide show
  1. package/index.js +18 -16
  2. package/package.json +2 -2
package/index.js CHANGED
@@ -81,7 +81,7 @@ const loadOptionList = async(mysqlConnection, optionListQuery, optionList = [])
81
81
  ]
82
82
  }
83
83
 
84
- const loadOutputParameterValues = async(mysqlConnection, definitionList, selectionList = []) => {
84
+ const loadOutputParameterValues = async(mysqlConnection, { definitionList, selectionList = [], forClient = false }) => {
85
85
  let parameterValues = []
86
86
 
87
87
  for (const definition of definitionList) {
@@ -102,20 +102,25 @@ const loadOutputParameterValues = async(mysqlConnection, definitionList, selecti
102
102
  if (parameter.value !== 'Custom') {
103
103
  parameter.dates = datesFromRange(parameter.value)
104
104
  }
105
- parameter.queryValues = {
106
- [`${parameter.name}_start_date`]: parameter.dates.from,
107
- [`${parameter.name}_end_date`]: parameter.dates.to,
105
+ if (!forClient) {
106
+ parameter.queryValues = {
107
+ [`${parameter.name}_start_date`]: parameter.dates.from,
108
+ [`${parameter.name}_end_date`]: parameter.dates.to,
109
+ }
108
110
  }
109
111
  } else if (definition.type === 'selection') {
110
112
  parameter.optionList = await loadOptionList(mysqlConnection, definition.optionListQuery, definition.optionList) // queries db
111
- parameter.queryValues = {
112
- [parameter.name]: parameter.value,
113
+ if (!forClient) {
114
+ parameter.queryValues = {
115
+ [parameter.name]: parameter.value,
116
+ }
113
117
  }
114
118
  } else if (definition.type === 'date') {
115
119
  parameter.value = parameter.value || formatDate(new Date(), 'yyyy-MM-dd')
116
-
117
- parameter.queryValues = {
118
- [parameter.name]: parameter.value,
120
+ if (!forClient) {
121
+ parameter.queryValues = {
122
+ [parameter.name]: parameter.value,
123
+ }
119
124
  }
120
125
  }
121
126
 
@@ -150,18 +155,14 @@ const parameterizeQuery = (query, parameterValues) => {
150
155
  module.exports = {
151
156
  formatReportMetadata: async(mysqlConnection, { report, chartsInReport }) => {
152
157
  try {
153
- const parameterValues = await loadOutputParameterValues(mysqlConnection, report.parameters)
154
- const parameterValuesForClient = parameterValues.map(param => {
155
- const { queryValues, ...parameterValuesForClient } = param
156
- return parameterValuesForClient
157
- })
158
+ const parameterValues = await loadOutputParameterValues(mysqlConnection, { definitionList: report.parameters, forClient: true })
158
159
 
159
160
  return {
160
161
  dashboardReportId: report.dashboardReportId,
161
162
  name: report.reportName,
162
163
  title: report.reportTitle,
163
164
  charts: chartsInReport,
164
- parameterValues: parameterValuesForClient,
165
+ parameterValues,
165
166
  ownerId: report.ownerId,
166
167
  }
167
168
  } catch (err) {
@@ -171,7 +172,7 @@ module.exports = {
171
172
  },
172
173
  formatChartDataForReport: async(mysqlConnection, { reportParameters, chart, reportChart, parameterSelectionList }) => {
173
174
  try {
174
- const parameterValues = await loadOutputParameterValues(mysqlConnection, reportParameters, parameterSelectionList)
175
+ const parameterValues = await loadOutputParameterValues(mysqlConnection, { definitionList: reportParameters, selectionList: parameterSelectionList })
175
176
  return await loadChartData(mysqlConnection, {
176
177
  ...chart,
177
178
  reportChartId: reportChart.reportChartId,
@@ -183,4 +184,5 @@ module.exports = {
183
184
  throw err
184
185
  }
185
186
  },
187
+ loadOutputParameterValues,
186
188
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@isoftdata/utility-dashboard-backend",
3
- "version": "1.0.2",
3
+ "version": "1.1.0",
4
4
  "description": "A utility for formatting chart and report data to be usable by the frontend dashboard component.",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -10,7 +10,7 @@
10
10
  "license": "ISC",
11
11
  "dependencies": {
12
12
  "@isoftdata/utility-date-time": "^2.0.3",
13
- "@isoftdata/utility-db": "^2.2.0",
13
+ "@isoftdata/utility-db": "^1.4.0",
14
14
  "date-fns": "^2.23.0",
15
15
  "klona": "^1.1.2",
16
16
  "mysql": "^2.18.1",