Skip to content

Commit 2a314fa

Browse files
authored
Merge pull request #272 from smartprocure/feature/accept-date-histogram-parameters
Accept more parameters in dateIntervalGroupStats query
2 parents 55bca7b + 89b37de commit 2a314fa

File tree

3 files changed

+69
-2
lines changed

3 files changed

+69
-2
lines changed

.changeset/grumpy-clocks-nail.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'contexture-elasticsearch': minor
3+
---
4+
5+
Accept more parameters in dateIntervalGroupStats query

packages/provider-elasticsearch/src/example-types/metricGroups/dateIntervalGroupStats.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,13 @@ let drilldown = ({ field, interval, drilldown, monthOffset = 3 }) => {
4848
}
4949

5050
let buildGroupQuery = (node, children, groupsKey) => {
51-
let { field, interval = 'year', monthOffset = 3 } = node
51+
let {
52+
field,
53+
interval = 'year',
54+
monthOffset = 3,
55+
minDocCount = 0,
56+
offset,
57+
} = node
5258
let fiscalOrField = fieldFiscalMappingOr(interval)
5359
interval = toElasticInterval(interval)
5460

@@ -72,7 +78,8 @@ let buildGroupQuery = (node, children, groupsKey) => {
7278
}),
7379
field: fiscalOrField(field),
7480
calendar_interval: interval,
75-
min_doc_count: 0,
81+
min_doc_count: minDocCount,
82+
offset,
7683
},
7784
...children,
7885
},

packages/provider-elasticsearch/src/example-types/metricGroups/dateIntervalGroupStats.test.js

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,4 +258,59 @@ describe('dateIntervalGroupStats', () => {
258258
},
259259
})
260260
})
261+
it('should accept offset parameter', () => {
262+
expect(
263+
buildQuery({
264+
key: 'test',
265+
type: 'dateIntervalGroupStats',
266+
groupField: 'PO.IssuedDate',
267+
statsField: 'LineItem.TotalPrice',
268+
offset: '+92d',
269+
})
270+
).toEqual({
271+
aggs: {
272+
groups: {
273+
date_histogram: {
274+
field: 'PO.IssuedDate',
275+
calendar_interval: 'year',
276+
min_doc_count: 0,
277+
offset: '+92d',
278+
},
279+
aggs: {
280+
min: { min: { field: 'LineItem.TotalPrice' } },
281+
max: { max: { field: 'LineItem.TotalPrice' } },
282+
avg: { avg: { field: 'LineItem.TotalPrice' } },
283+
sum: { sum: { field: 'LineItem.TotalPrice' } },
284+
},
285+
},
286+
},
287+
})
288+
})
289+
it('should accept minDocCount parameter', () => {
290+
expect(
291+
buildQuery({
292+
key: 'test',
293+
type: 'dateIntervalGroupStats',
294+
groupField: 'PO.IssuedDate',
295+
statsField: 'LineItem.TotalPrice',
296+
minDocCount: 1,
297+
})
298+
).toEqual({
299+
aggs: {
300+
groups: {
301+
date_histogram: {
302+
field: 'PO.IssuedDate',
303+
calendar_interval: 'year',
304+
min_doc_count: 1,
305+
},
306+
aggs: {
307+
min: { min: { field: 'LineItem.TotalPrice' } },
308+
max: { max: { field: 'LineItem.TotalPrice' } },
309+
avg: { avg: { field: 'LineItem.TotalPrice' } },
310+
sum: { sum: { field: 'LineItem.TotalPrice' } },
311+
},
312+
},
313+
},
314+
})
315+
})
261316
})

0 commit comments

Comments
 (0)