@outliant/sunrise-utils 1.4.7 → 2.0.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.
@@ -1,34 +1,9 @@
1
+ const _ = require('lodash');
1
2
  const moment = require('moment');
2
- const { escapeElasticQuery } = require('../es');
3
+ // const { escapeElasticQuery } = require('../es');
3
4
  const splitString = require('../splitString');
4
5
  const { isNoneOf } = require('../common');
5
6
 
6
- function getContainsMappingValue(filter) {
7
- if (['text', 'textarea'].includes(filter.field_type)) {
8
- return {
9
- bool: {
10
- should: [
11
- {
12
- match: {
13
- [`fields.text.analyzed`]: {
14
- query: filter.value,
15
- operator: 'and'
16
- }
17
- }
18
- },
19
- {
20
- match_phrase_prefix: {
21
- [`fields.text.analyzed`]: filter.value
22
- }
23
- }
24
- ]
25
- }
26
- };
27
- }
28
-
29
- return {};
30
- }
31
-
32
7
  module.exports = (filter) => {
33
8
  switch (filter.condition) {
34
9
  case 'contains_any':
@@ -41,6 +16,7 @@ module.exports = (filter) => {
41
16
  return module.exports.isNotEmpty(filter);
42
17
  case 'is_any_of':
43
18
  return module.exports.isAnyOf(filter);
19
+ case 'contains_all':
44
20
  case 'is_equal':
45
21
  return module.exports.isEqual(filter);
46
22
  case 'not_equal':
@@ -72,48 +48,64 @@ module.exports = (filter) => {
72
48
 
73
49
  module.exports.containsAny = (filter) => {
74
50
  if (!!filter.field_id) {
75
- const mapping = getContainsMappingValue(filter);
51
+ if (['text', 'textarea'].includes(filter.field_type)) {
52
+ return {
53
+ wildcard: { [`${filter.field_id}.value`]: `*${filter.value}*` }
54
+ };
55
+ }
76
56
 
77
- if (!mapping) {
78
- return null;
57
+ let value = filter.value;
58
+ if (typeof value === 'string') {
59
+ value = splitString(value);
79
60
  }
80
61
 
81
62
  return {
82
- bool: {
83
- must: [
84
- {
85
- nested: {
86
- path: 'fields',
87
- query: {
88
- bool: {
89
- must: [
90
- {
91
- term: {
92
- 'fields.id': {
93
- value: filter.field_id
94
- }
95
- }
96
- }
97
- ]
98
- }
99
- }
100
- }
101
- },
102
- {
103
- bool: {
104
- should: [
105
- {
106
- nested: {
107
- path: 'fields',
108
- query: mapping
109
- }
110
- }
111
- ]
112
- }
113
- }
114
- ]
63
+ terms: {
64
+ [`${filter.field_id}.value`]: _.castArray(value)
115
65
  }
116
66
  };
67
+ // const mapping = getContainsMappingValue(filter);
68
+
69
+ // if (!mapping) {
70
+ // return null;
71
+ // }
72
+
73
+ // return {
74
+ // bool: {
75
+ // must: [
76
+ // {
77
+ // nested: {
78
+ // path: 'fields',
79
+ // query: {
80
+ // bool: {
81
+ // must: [
82
+ // {
83
+ // term: {
84
+ // 'fields.id': {
85
+ // value: filter.field_id
86
+ // }
87
+ // }
88
+ // }
89
+ // ]
90
+ // }
91
+ // }
92
+ // }
93
+ // },
94
+ // {
95
+ // bool: {
96
+ // should: [
97
+ // {
98
+ // nested: {
99
+ // path: 'fields',
100
+ // query: mapping
101
+ // }
102
+ // }
103
+ // ]
104
+ // }
105
+ // }
106
+ // ]
107
+ // }
108
+ // };
117
109
  }
118
110
 
119
111
  return null;
@@ -121,44 +113,49 @@ module.exports.containsAny = (filter) => {
121
113
 
122
114
  module.exports.containsNone = (filter) => {
123
115
  if (!!filter.field_id) {
124
- const mapping = getContainsMappingValue(filter);
125
-
126
- if (!mapping) {
127
- return null;
128
- }
129
-
130
116
  return {
131
117
  bool: {
132
- must: [
133
- {
134
- nested: {
135
- path: 'fields',
136
- query: {
137
- bool: {
138
- must: [
139
- {
140
- term: {
141
- 'fields.id': {
142
- value: filter.field_id
143
- }
144
- }
145
- }
146
- ]
147
- }
148
- }
149
- }
150
- }
151
- ],
152
- must_not: [
153
- {
154
- nested: {
155
- path: 'fields',
156
- query: mapping
157
- }
158
- }
159
- ]
118
+ must_not: module.exports.containsAny(filter)
160
119
  }
161
120
  };
121
+ // const mapping = getContainsMappingValue(filter);
122
+
123
+ // if (!mapping) {
124
+ // return null;
125
+ // }
126
+
127
+ // return {
128
+ // bool: {
129
+ // must: [
130
+ // {
131
+ // nested: {
132
+ // path: 'fields',
133
+ // query: {
134
+ // bool: {
135
+ // must: [
136
+ // {
137
+ // term: {
138
+ // 'fields.id': {
139
+ // value: filter.field_id
140
+ // }
141
+ // }
142
+ // }
143
+ // ]
144
+ // }
145
+ // }
146
+ // }
147
+ // }
148
+ // ],
149
+ // must_not: [
150
+ // {
151
+ // nested: {
152
+ // path: 'fields',
153
+ // query: mapping
154
+ // }
155
+ // }
156
+ // ]
157
+ // }
158
+ // };
162
159
  }
163
160
 
164
161
  return null;
@@ -173,26 +170,19 @@ module.exports.isAnyOf = (filter) => {
173
170
 
174
171
  if (filter.field_id) {
175
172
  return {
176
- nested: {
177
- path: 'fields',
178
- query: {
179
- bool: {
180
- must: [
181
- {
182
- term: {
183
- 'fields.id': {
184
- value: filter.field_id
185
- }
186
- }
187
- },
188
- {
189
- terms: {
190
- 'fields.text': value
191
- }
192
- }
193
- ]
173
+ bool: {
174
+ must: [
175
+ {
176
+ exists: {
177
+ field: `${filter.field_id}.value`
178
+ }
179
+ },
180
+ {
181
+ terms: {
182
+ [`${filter.field_id}.value`]: _.castArray(value)
183
+ }
194
184
  }
195
- }
185
+ ]
196
186
  }
197
187
  };
198
188
  }
@@ -206,67 +196,149 @@ module.exports.isAnyOf = (filter) => {
206
196
 
207
197
  module.exports.isEmpty = (filter) => {
208
198
  if (!!filter.field_id) {
209
- return {
210
- bool: {
211
- should: [
212
- {
213
- bool: {
214
- must: [
215
- {
216
- nested: {
217
- path: 'fields',
218
- query: {
219
- bool: {
220
- must: [
221
- {
222
- term: {
223
- 'fields.id': {
224
- value: filter.field_id
225
- }
226
- }
227
- },
228
- {
229
- term: {
230
- 'fields.text': {
231
- value: ''
232
- }
233
- }
234
- }
235
- ]
236
- }
199
+ if (['text', 'textarea'].includes(filter.field_type)) {
200
+ return {
201
+ bool: {
202
+ should: [
203
+ {
204
+ bool: {
205
+ must_not: [
206
+ {
207
+ exists: {
208
+ field: `${filter.field_id}.sort`
237
209
  }
238
210
  }
239
- }
240
- ]
241
- }
242
- },
243
- {
244
- bool: {
245
- must_not: [
246
- {
247
- nested: {
248
- path: 'fields',
249
- query: {
250
- bool: {
251
- must: [
252
- {
253
- term: {
254
- 'fields.id': {
255
- value: filter.field_id
256
- }
257
- }
258
- }
259
- ]
260
- }
211
+ ]
212
+ }
213
+ },
214
+ {
215
+ bool: {
216
+ must: [
217
+ {
218
+ exists: {
219
+ field: `${filter.field_id}.sort`
220
+ }
221
+ },
222
+ {
223
+ script: {
224
+ script: `doc['${filter.field_id}.sort'].size() > 0 && doc['${filter.field_id}.sort'].value == ''`
261
225
  }
262
226
  }
263
- }
264
- ]
227
+ ]
228
+ }
229
+ }
230
+ ],
231
+ minimum_should_match: 1
232
+ }
233
+ };
234
+ }
235
+
236
+ return {
237
+ bool: {
238
+ must_not: [
239
+ {
240
+ exists: {
241
+ field: `${filter.field_id}.value`
265
242
  }
266
243
  }
267
244
  ]
268
245
  }
269
246
  };
247
+ // return {
248
+ // bool: {
249
+ // should: [
250
+ // {
251
+ // bool: {
252
+ // must_not: [
253
+ // {
254
+ // exists: {
255
+ // field: `${filter.field_id}.value`
256
+ // }
257
+ // }
258
+ // ]
259
+ // }
260
+ // },
261
+ // {
262
+ // bool: {
263
+ // must: [
264
+ // {
265
+ // exists: {
266
+ // field: `${filter.field_id}.value`
267
+ // }
268
+ // },
269
+ // {
270
+ // script: {
271
+ // script: `doc['${filter.field_id}.value'].size() > 0 && doc['${filter.field_id}.value'].value == ''`
272
+ // }
273
+ // }
274
+ // ]
275
+ // }
276
+ // }
277
+ // ],
278
+ // minimum_should_match: 1
279
+ // }
280
+ // };
281
+ // return {
282
+ // bool: {
283
+ // should: [
284
+ // {
285
+ // bool: {
286
+ // must: [
287
+ // {
288
+ // nested: {
289
+ // path: 'fields',
290
+ // query: {
291
+ // bool: {
292
+ // must: [
293
+ // {
294
+ // term: {
295
+ // 'fields.id': {
296
+ // value: filter.field_id
297
+ // }
298
+ // }
299
+ // },
300
+ // {
301
+ // term: {
302
+ // 'fields.text': {
303
+ // value: ''
304
+ // }
305
+ // }
306
+ // }
307
+ // ]
308
+ // }
309
+ // }
310
+ // }
311
+ // }
312
+ // ]
313
+ // }
314
+ // },
315
+ // {
316
+ // bool: {
317
+ // must_not: [
318
+ // {
319
+ // nested: {
320
+ // path: 'fields',
321
+ // query: {
322
+ // bool: {
323
+ // must: [
324
+ // {
325
+ // term: {
326
+ // 'fields.id': {
327
+ // value: filter.field_id
328
+ // }
329
+ // }
330
+ // }
331
+ // ]
332
+ // }
333
+ // }
334
+ // }
335
+ // }
336
+ // ]
337
+ // }
338
+ // }
339
+ // ]
340
+ // }
341
+ // };
270
342
  }
271
343
 
272
344
  return null;
@@ -274,48 +346,115 @@ module.exports.isEmpty = (filter) => {
274
346
 
275
347
  module.exports.isNotEmpty = (filter) => {
276
348
  if (!!filter.field_id) {
277
- return {
278
- bool: {
279
- must: [
280
- {
281
- nested: {
282
- path: 'fields',
283
- query: {
284
- bool: {
285
- must: [
286
- {
287
- term: {
288
- 'fields.id': {
289
- value: filter.field_id
290
- }
291
- }
292
- },
293
- {
294
- exists: {
295
- field: 'fields.text'
296
- }
297
- },
298
- {
299
- bool: {
300
- must_not: [
301
- {
302
- term: {
303
- 'fields.text': {
304
- value: ''
305
- }
306
- }
307
- }
308
- ]
309
- }
349
+ if (['text', 'textarea'].includes(filter.field_type)) {
350
+ return {
351
+ bool: {
352
+ must: [
353
+ {
354
+ exists: {
355
+ field: `${filter.field_id}.sort`
356
+ }
357
+ },
358
+ {
359
+ bool: {
360
+ must_not: [
361
+ {
362
+ terms: {
363
+ [`${filter.field_id}.sort`]: ['', 'null']
364
+ }
365
+ },
366
+ {
367
+ script: {
368
+ script: `doc['${filter.field_id}.sort'].size() > 0 && doc['${filter.field_id}.sort'].value == ''`
310
369
  }
311
- ]
312
- }
370
+ }
371
+ ]
313
372
  }
314
373
  }
315
- }
316
- ]
374
+ ]
375
+ }
376
+ };
377
+ }
378
+
379
+ return {
380
+ exists: {
381
+ field: `${filter.field_id}.value`
317
382
  }
318
383
  };
384
+ // return {
385
+ // bool: {
386
+ // must: [
387
+ // {
388
+ // exists: {
389
+ // field: `${filter.field_id}.value`
390
+ // }
391
+ // },
392
+ // {
393
+ // bool: {
394
+ // must_not: [
395
+ // {
396
+ // terms: {
397
+ // [`${filter.field_id}.value`]: ['', 'null']
398
+ // }
399
+ // },
400
+ // {
401
+ // script: {
402
+ // script: {
403
+ // source: `
404
+ // def f = doc['${filter.field_id}.value'];
405
+ // return f != null && f.size() == 0;
406
+ // `
407
+ // }
408
+ // }
409
+ // }
410
+ // ]
411
+ // }
412
+ // }
413
+ // ]
414
+ // }
415
+ // };
416
+ // return {
417
+ // bool: {
418
+ // must: [
419
+ // {
420
+ // nested: {
421
+ // path: 'fields',
422
+ // query: {
423
+ // bool: {
424
+ // must: [
425
+ // {
426
+ // term: {
427
+ // 'fields.id': {
428
+ // value: filter.field_id
429
+ // }
430
+ // }
431
+ // },
432
+ // {
433
+ // exists: {
434
+ // field: 'fields.text'
435
+ // }
436
+ // },
437
+ // {
438
+ // bool: {
439
+ // must_not: [
440
+ // {
441
+ // term: {
442
+ // 'fields.text': {
443
+ // value: ''
444
+ // }
445
+ // }
446
+ // }
447
+ // ]
448
+ // }
449
+ // }
450
+ // ]
451
+ // }
452
+ // }
453
+ // }
454
+ // }
455
+ // ]
456
+ // }
457
+ // };
319
458
  }
320
459
 
321
460
  return null;
@@ -325,7 +464,7 @@ module.exports.isEqual = (filter) => {
325
464
  if (!!filter.field_id) {
326
465
  let mappingValue = {
327
466
  term: {
328
- 'fields.text': {
467
+ [`${filter.field_id}.value`]: {
329
468
  value: filter.value
330
469
  }
331
470
  }
@@ -337,7 +476,7 @@ module.exports.isEqual = (filter) => {
337
476
 
338
477
  mappingValue = {
339
478
  range: {
340
- 'fields.number': {
479
+ [`${filter.field_id}.value`]: {
341
480
  gte: startOfDay,
342
481
  lte: endOfDay
343
482
  }
@@ -346,18 +485,18 @@ module.exports.isEqual = (filter) => {
346
485
  } else if (filter.field_type === 'number') {
347
486
  mappingValue = {
348
487
  term: {
349
- 'fields.number': {
488
+ [`${filter.field_id}.value`]: {
350
489
  value: parseInt(filter.value)
351
490
  }
352
491
  }
353
492
  };
354
- } else if (filter.field_type === 'textarea') {
355
- mappingValue = {
356
- query_string: {
357
- fields: ['fields.text'],
358
- query: `*${escapeElasticQuery(filter.value.trim())}*`
359
- }
360
- };
493
+ // } else if (filter.field_type === 'textarea') {
494
+ // mappingValue = {
495
+ // query_string: {
496
+ // fields: [`${filter.field_id}.value`],
497
+ // query: `*${escapeElasticQuery(filter.value.trim())}*`
498
+ // }
499
+ // };
361
500
  } else if (filter.field_type === 'checkbox') {
362
501
  let value = filter.value;
363
502
 
@@ -367,13 +506,10 @@ module.exports.isEqual = (filter) => {
367
506
 
368
507
  mappingValue = {
369
508
  bool: {
370
- should: value.map((x) => {
509
+ must: _.castArray(value).map((x) => {
371
510
  return {
372
- match: {
373
- 'fields.text.analyzed': {
374
- query: x,
375
- operator: 'and'
376
- }
511
+ term: {
512
+ [`${filter.field_id}.value`]: x
377
513
  }
378
514
  };
379
515
  })
@@ -385,24 +521,11 @@ module.exports.isEqual = (filter) => {
385
521
  bool: {
386
522
  must: [
387
523
  {
388
- nested: {
389
- path: 'fields',
390
- query: {
391
- bool: {
392
- must: [
393
- {
394
- term: {
395
- 'fields.id': {
396
- value: filter.field_id
397
- }
398
- }
399
- },
400
- mappingValue
401
- ]
402
- }
403
- }
524
+ exists: {
525
+ field: `${filter.field_id}.value`
404
526
  }
405
- }
527
+ },
528
+ mappingValue
406
529
  ]
407
530
  }
408
531
  };
@@ -426,27 +549,14 @@ module.exports.isBefore = (filter) => {
426
549
  bool: {
427
550
  must: [
428
551
  {
429
- nested: {
430
- path: 'fields',
431
- query: {
432
- bool: {
433
- must: [
434
- {
435
- term: {
436
- 'fields.id': {
437
- value: filter.field_id
438
- }
439
- }
440
- },
441
- {
442
- range: {
443
- 'fields.number': {
444
- lt: param
445
- }
446
- }
447
- }
448
- ]
449
- }
552
+ exists: {
553
+ field: `${filter.field_id}.value`
554
+ }
555
+ },
556
+ {
557
+ range: {
558
+ [`${filter.field_id}.value`]: {
559
+ lt: param
450
560
  }
451
561
  }
452
562
  }
@@ -473,27 +583,14 @@ module.exports.isAfter = (filter) => {
473
583
  bool: {
474
584
  must: [
475
585
  {
476
- nested: {
477
- path: 'fields',
478
- query: {
479
- bool: {
480
- must: [
481
- {
482
- term: {
483
- 'fields.id': {
484
- value: filter.field_id
485
- }
486
- }
487
- },
488
- {
489
- range: {
490
- 'fields.number': {
491
- gt: param
492
- }
493
- }
494
- }
495
- ]
496
- }
586
+ exists: {
587
+ field: `${filter.field_id}.value`
588
+ }
589
+ },
590
+ {
591
+ range: {
592
+ [`${filter.field_id}.value`]: {
593
+ gt: param
497
594
  }
498
595
  }
499
596
  }
@@ -519,28 +616,15 @@ module.exports.nextNDays = (filter) => {
519
616
  bool: {
520
617
  must: [
521
618
  {
522
- nested: {
523
- path: 'fields',
524
- query: {
525
- bool: {
526
- must: [
527
- {
528
- term: {
529
- 'fields.id': {
530
- value: filter.field_id
531
- }
532
- }
533
- },
534
- {
535
- range: {
536
- 'fields.number': {
537
- gt: today.valueOf(),
538
- lt: nextNDays.valueOf()
539
- }
540
- }
541
- }
542
- ]
543
- }
619
+ exists: {
620
+ field: `${filter.field_id}.value`
621
+ }
622
+ },
623
+ {
624
+ range: {
625
+ [`${filter.field_id}.value`]: {
626
+ gt: today.valueOf(),
627
+ lt: nextNDays.valueOf()
544
628
  }
545
629
  }
546
630
  }
@@ -568,28 +652,15 @@ module.exports.lastNDays = (filter) => {
568
652
  bool: {
569
653
  must: [
570
654
  {
571
- nested: {
572
- path: 'fields',
573
- query: {
574
- bool: {
575
- must: [
576
- {
577
- term: {
578
- 'fields.id': {
579
- value: filter.field_id
580
- }
581
- }
582
- },
583
- {
584
- range: {
585
- 'fields.number': {
586
- lt: today.valueOf(),
587
- gt: lastNDays.valueOf()
588
- }
589
- }
590
- }
591
- ]
592
- }
655
+ exists: {
656
+ field: `${filter.field_id}.value`
657
+ }
658
+ },
659
+ {
660
+ range: {
661
+ [`${filter.field_id}.value`]: {
662
+ lt: today.valueOf(),
663
+ gt: lastNDays.valueOf()
593
664
  }
594
665
  }
595
666
  }
@@ -614,27 +685,14 @@ module.exports.greaterNDaysAgo = (filter) => {
614
685
  bool: {
615
686
  must: [
616
687
  {
617
- nested: {
618
- path: 'fields',
619
- query: {
620
- bool: {
621
- must: [
622
- {
623
- term: {
624
- 'fields.id': {
625
- value: filter.field_id
626
- }
627
- }
628
- },
629
- {
630
- range: {
631
- 'fields.number': {
632
- lt: greaterNDaysAgo.valueOf()
633
- }
634
- }
635
- }
636
- ]
637
- }
688
+ exists: {
689
+ field: `${filter.field_id}.value`
690
+ }
691
+ },
692
+ {
693
+ range: {
694
+ [`${filter.field_id}.value`]: {
695
+ lt: greaterNDaysAgo.valueOf()
638
696
  }
639
697
  }
640
698
  }
@@ -660,27 +718,14 @@ module.exports.isBeforeIncludeParam = (filter) => {
660
718
  bool: {
661
719
  must: [
662
720
  {
663
- nested: {
664
- path: 'fields',
665
- query: {
666
- bool: {
667
- must: [
668
- {
669
- term: {
670
- 'fields.id': {
671
- value: filter.field_id
672
- }
673
- }
674
- },
675
- {
676
- range: {
677
- 'fields.number': {
678
- lte: param
679
- }
680
- }
681
- }
682
- ]
683
- }
721
+ exists: {
722
+ field: `${filter.field_id}.value`
723
+ }
724
+ },
725
+ {
726
+ range: {
727
+ [`${filter.field_id}.value`]: {
728
+ lte: param
684
729
  }
685
730
  }
686
731
  }
@@ -707,27 +752,14 @@ module.exports.isAfterIncludeParam = (filter) => {
707
752
  bool: {
708
753
  must: [
709
754
  {
710
- nested: {
711
- path: 'fields',
712
- query: {
713
- bool: {
714
- must: [
715
- {
716
- term: {
717
- 'fields.id': {
718
- value: filter.field_id
719
- }
720
- }
721
- },
722
- {
723
- range: {
724
- 'fields.number': {
725
- gte: param
726
- }
727
- }
728
- }
729
- ]
730
- }
755
+ exists: {
756
+ field: `${filter.field_id}.value`
757
+ }
758
+ },
759
+ {
760
+ range: {
761
+ [`${filter.field_id}.value`]: {
762
+ gte: param
731
763
  }
732
764
  }
733
765
  }
@@ -758,28 +790,15 @@ module.exports.isBetween = (filter) => {
758
790
  bool: {
759
791
  must: [
760
792
  {
761
- nested: {
762
- path: 'fields',
763
- query: {
764
- bool: {
765
- must: [
766
- {
767
- term: {
768
- 'fields.id': {
769
- value: filter.field_id
770
- }
771
- }
772
- },
773
- {
774
- range: {
775
- 'fields.number': {
776
- gte: firstParam,
777
- lte: secondParam
778
- }
779
- }
780
- }
781
- ]
782
- }
793
+ exists: {
794
+ field: `${filter.field_id}.value`
795
+ }
796
+ },
797
+ {
798
+ range: {
799
+ [`${filter.field_id}.value`]: {
800
+ gte: firstParam,
801
+ lte: secondParam
783
802
  }
784
803
  }
785
804
  }
@@ -793,68 +812,73 @@ module.exports.isBetween = (filter) => {
793
812
 
794
813
  module.exports.isNotEqual = (filter) => {
795
814
  if (!!filter.field_id) {
796
- let mappingValue = {
797
- term: {
798
- 'fields.text': {
799
- value: filter.value
800
- }
801
- }
802
- };
803
-
804
- if (filter.field_type === 'date') {
805
- const startOfDay = moment(filter.value).startOf('day').valueOf();
806
- const endOfDay = moment(filter.value).endOf('day').valueOf();
807
-
808
- mappingValue = {
809
- range: {
810
- 'fields.number': {
811
- gte: startOfDay,
812
- lte: endOfDay
813
- }
814
- }
815
- };
816
- } else if (filter.field_type === 'number') {
817
- mappingValue = {
818
- term: {
819
- 'fields.number': {
820
- value: parseInt(filter.value)
821
- }
822
- }
823
- };
824
- }
825
-
826
815
  return {
827
816
  bool: {
828
- must: [
829
- {
830
- nested: {
831
- path: 'fields',
832
- query: {
833
- bool: {
834
- must: [
835
- {
836
- term: {
837
- 'fields.id': {
838
- value: filter.field_id
839
- }
840
- }
841
- }
842
- ]
843
- }
844
- }
845
- }
846
- }
847
- ],
848
- must_not: [
849
- {
850
- nested: {
851
- path: 'fields',
852
- query: mappingValue
853
- }
854
- }
855
- ]
817
+ must_not: [module.exports.isEqual(filter)]
856
818
  }
857
819
  };
820
+ // let mappingValue = {
821
+ // term: {
822
+ // 'fields.text': {
823
+ // value: filter.value
824
+ // }
825
+ // }
826
+ // };
827
+
828
+ // if (filter.field_type === 'date') {
829
+ // const startOfDay = moment(filter.value).startOf('day').valueOf();
830
+ // const endOfDay = moment(filter.value).endOf('day').valueOf();
831
+
832
+ // mappingValue = {
833
+ // range: {
834
+ // 'fields.number': {
835
+ // gte: startOfDay,
836
+ // lte: endOfDay
837
+ // }
838
+ // }
839
+ // };
840
+ // } else if (filter.field_type === 'number') {
841
+ // mappingValue = {
842
+ // term: {
843
+ // 'fields.number': {
844
+ // value: parseInt(filter.value)
845
+ // }
846
+ // }
847
+ // };
848
+ // }
849
+
850
+ // return {
851
+ // bool: {
852
+ // must: [
853
+ // {
854
+ // nested: {
855
+ // path: 'fields',
856
+ // query: {
857
+ // bool: {
858
+ // must: [
859
+ // {
860
+ // term: {
861
+ // 'fields.id': {
862
+ // value: filter.field_id
863
+ // }
864
+ // }
865
+ // }
866
+ // ]
867
+ // }
868
+ // }
869
+ // }
870
+ // }
871
+ // ],
872
+ // must_not: [
873
+ // {
874
+ // nested: {
875
+ // path: 'fields',
876
+ // query: mappingValue
877
+ // }
878
+ // }
879
+ // ]
880
+ // }
881
+ // };
858
882
  }
859
883
 
860
884
  return null;