@dhis2/analytics 26.8.0 → 26.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -56,8 +56,12 @@ const analyticsDataQuery = {
56
56
  parameters
57
57
  } = _ref4;
58
58
  return {
59
- dimension: dimensions.length ? dimensions : undefined,
60
- filter: filters.length ? filters : undefined,
59
+ dimension: dimensions.length ? generateDimensionStrings(dimensions, {
60
+ sorted: true
61
+ }) : undefined,
62
+ filter: filters.length ? generateDimensionStrings(filters, {
63
+ sorted: true
64
+ }) : undefined,
61
65
  ...parameters,
62
66
  skipMeta: true,
63
67
  skipData: false
@@ -85,8 +89,8 @@ const analyticsMetaDataQuery = {
85
89
  parameters
86
90
  } = _ref6;
87
91
  return {
88
- dimension: dimensions.length ? dimensions : undefined,
89
- filter: filters.length ? filters : undefined,
92
+ dimension: dimensions.length ? generateDimensionStrings(dimensions) : undefined,
93
+ filter: filters.length ? generateDimensionStrings(filters) : undefined,
90
94
  ...parameters,
91
95
  skipMeta: false,
92
96
  skipData: true,
@@ -97,17 +101,15 @@ const analyticsMetaDataQuery = {
97
101
  const generateDimensionStrings = function () {
98
102
  let dimensions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
99
103
  let options = arguments.length > 1 ? arguments[1] : undefined;
100
- if (options && options.sorted) {
101
- dimensions = (0, _sortBy.default)(dimensions, 'dimension');
102
- }
103
- return dimensions.map(_ref7 => {
104
+ const sortedDimensions = (0, _sortBy.default)(dimensions, 'dimension');
105
+ return sortedDimensions.map(_ref7 => {
104
106
  let {
105
107
  dimension,
106
108
  items
107
109
  } = _ref7;
108
110
  if (Array.isArray(items) && items.length) {
109
111
  if (options && options.sorted) {
110
- items.sort();
112
+ items = items.slice().sort();
111
113
  }
112
114
  return `${dimension}:${items.join(';')}`;
113
115
  }
@@ -170,8 +172,8 @@ class AnalyticsBase {
170
172
  path: req.path,
171
173
  program: req.program,
172
174
  trackedEntityType: req.trackedEntityType,
173
- dimensions: generateDimensionStrings(req.dimensions),
174
- filters: generateDimensionStrings(req.filters),
175
+ dimensions: req.dimensions,
176
+ filters: req.filters,
175
177
  parameters: req.parameters,
176
178
  dataParams: dataReq.parameters,
177
179
  metaDataParams: metaDataReq.parameters
@@ -26,7 +26,7 @@ describe('generateDimensionString', () => {
26
26
  dimension: 'dim1',
27
27
  items: ['item1']
28
28
  }],
29
- output: ['dim2:item2;item1', 'dim1:item1'],
29
+ output: ['dim1:item1', 'dim2:item2;item1'],
30
30
  outputSorted: ['dim1:item1', 'dim2:item1;item2']
31
31
  }];
32
32
  it('should return dimension strings correctly formatted', () => {
@@ -49,8 +49,12 @@ const analyticsDataQuery = {
49
49
  parameters
50
50
  } = _ref4;
51
51
  return {
52
- dimension: dimensions.length ? dimensions : undefined,
53
- filter: filters.length ? filters : undefined,
52
+ dimension: dimensions.length ? generateDimensionStrings(dimensions, {
53
+ sorted: true
54
+ }) : undefined,
55
+ filter: filters.length ? generateDimensionStrings(filters, {
56
+ sorted: true
57
+ }) : undefined,
54
58
  ...parameters,
55
59
  skipMeta: true,
56
60
  skipData: false
@@ -78,8 +82,8 @@ const analyticsMetaDataQuery = {
78
82
  parameters
79
83
  } = _ref6;
80
84
  return {
81
- dimension: dimensions.length ? dimensions : undefined,
82
- filter: filters.length ? filters : undefined,
85
+ dimension: dimensions.length ? generateDimensionStrings(dimensions) : undefined,
86
+ filter: filters.length ? generateDimensionStrings(filters) : undefined,
83
87
  ...parameters,
84
88
  skipMeta: false,
85
89
  skipData: true,
@@ -90,17 +94,15 @@ const analyticsMetaDataQuery = {
90
94
  export const generateDimensionStrings = function () {
91
95
  let dimensions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
92
96
  let options = arguments.length > 1 ? arguments[1] : undefined;
93
- if (options && options.sorted) {
94
- dimensions = sortBy(dimensions, 'dimension');
95
- }
96
- return dimensions.map(_ref7 => {
97
+ const sortedDimensions = sortBy(dimensions, 'dimension');
98
+ return sortedDimensions.map(_ref7 => {
97
99
  let {
98
100
  dimension,
99
101
  items
100
102
  } = _ref7;
101
103
  if (Array.isArray(items) && items.length) {
102
104
  if (options && options.sorted) {
103
- items.sort();
105
+ items = items.slice().sort();
104
106
  }
105
107
  return `${dimension}:${items.join(';')}`;
106
108
  }
@@ -162,8 +164,8 @@ class AnalyticsBase {
162
164
  path: req.path,
163
165
  program: req.program,
164
166
  trackedEntityType: req.trackedEntityType,
165
- dimensions: generateDimensionStrings(req.dimensions),
166
- filters: generateDimensionStrings(req.filters),
167
+ dimensions: req.dimensions,
168
+ filters: req.filters,
167
169
  parameters: req.parameters,
168
170
  dataParams: dataReq.parameters,
169
171
  metaDataParams: metaDataReq.parameters
@@ -22,7 +22,7 @@ describe('generateDimensionString', () => {
22
22
  dimension: 'dim1',
23
23
  items: ['item1']
24
24
  }],
25
- output: ['dim2:item2;item1', 'dim1:item1'],
25
+ output: ['dim1:item1', 'dim2:item2;item1'],
26
26
  outputSorted: ['dim1:item1', 'dim2:item1;item2']
27
27
  }];
28
28
  it('should return dimension strings correctly formatted', () => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dhis2/analytics",
3
- "version": "26.8.0",
3
+ "version": "26.8.1",
4
4
  "main": "./build/cjs/index.js",
5
5
  "module": "./build/es/index.js",
6
6
  "exports": {