mirror of
https://gitlab.com/openstapps/openstapps.git
synced 2026-01-07 05:52:57 +00:00
feat: add ability to check for existence of a field
This commit is contained in:
@@ -21,16 +21,31 @@ import {QueryDslSpecificQueryContainer} from '../../types/util.js';
|
||||
*/
|
||||
export function buildValueFilter(
|
||||
filter: SCSearchValueFilter,
|
||||
): QueryDslSpecificQueryContainer<'term'> | QueryDslSpecificQueryContainer<'terms'> {
|
||||
return Array.isArray(filter.arguments.value)
|
||||
? {
|
||||
terms: {
|
||||
[`${filter.arguments.field}.raw`]: filter.arguments.value,
|
||||
):
|
||||
| QueryDslSpecificQueryContainer<'exists'>
|
||||
| QueryDslSpecificQueryContainer<'term'>
|
||||
| QueryDslSpecificQueryContainer<'terms'> {
|
||||
switch (typeof filter.arguments.value) {
|
||||
case 'undefined': {
|
||||
return {
|
||||
exists: {
|
||||
field: filter.arguments.field,
|
||||
},
|
||||
}
|
||||
: {
|
||||
};
|
||||
}
|
||||
case 'string': {
|
||||
return {
|
||||
term: {
|
||||
[`${filter.arguments.field}.raw`]: filter.arguments.value,
|
||||
},
|
||||
};
|
||||
}
|
||||
case 'object': {
|
||||
return {
|
||||
terms: {
|
||||
[`${filter.arguments.field}.raw`]: filter.arguments.value,
|
||||
},
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user