Don't allow empty filter for non-string types. Add null filter. (#7501)

This commit is contained in:
Oreille
2021-08-19 16:02:54 +02:00
committed by GitHub
parent 67e9b94f10
commit 49e4a9b0de
3 changed files with 45 additions and 15 deletions

View File

@@ -4,7 +4,6 @@ export function getFilterOperatorsForType(type: Type): ClientFilterOperator[] {
switch (type) {
// Text
case 'binary':
case 'json':
case 'hash':
case 'string':
case 'csv':
@@ -22,23 +21,44 @@ export function getFilterOperatorsForType(type: Type): ClientFilterOperator[] {
'in',
'nin',
];
// JSON
case 'json':
return ['eq', 'neq', 'null', 'nnull', 'in', 'nin'];
// UUID
case 'uuid':
return ['eq', 'neq', 'empty', 'nempty', 'in', 'nin'];
return ['eq', 'neq', 'null', 'nnull', 'in', 'nin'];
// Boolean
case 'boolean':
return ['eq', 'neq', 'empty', 'nempty'];
return ['eq', 'neq', 'null', 'nnull'];
// Numbers
case 'integer':
case 'decimal':
return ['eq', 'neq', 'lt', 'lte', 'gt', 'gte', 'between', 'nbetween', 'empty', 'nempty', 'in', 'nin'];
return ['eq', 'neq', 'lt', 'lte', 'gt', 'gte', 'between', 'nbetween', 'null', 'nnull', 'in', 'nin'];
// Datetime
case 'dateTime':
case 'date':
case 'time':
return ['eq', 'neq', 'lt', 'lte', 'gt', 'gte', 'between', 'nbetween', 'empty', 'nempty', 'in', 'nin'];
return [
'eq',
'neq',
'null',
'nnull',
'lt',
'lte',
'gt',
'gte',
'between',
'nbetween',
'null',
'nnull',
'in',
'nin',
];
case 'geometry':
return ['eq', 'neq', 'intersects', 'nintersects', 'intersects_bbox', 'nintersects_bbox'];
@@ -57,6 +77,8 @@ export function getFilterOperatorsForType(type: Type): ClientFilterOperator[] {
'nbetween',
'empty',
'nempty',
'null',
'nnull',
'in',
'nin',
];