Browse Source

Support logic for ARRAY_CONTAINS_ALL in attu query search (#559)

* Update Util.ts add ARRAY_CONTAINS_ALL

* Update Util.ts

* Update utils.ts

* Update Filter.tsx
Rohit Gupta 1 year ago
parent
commit
4918486c62

+ 4 - 0
client/src/components/advancedSearch/Filter.tsx

@@ -104,6 +104,10 @@ const Filter = forwardRef((props: FilterProps, ref) => {
       if (op === 'JSON_CONTAINS' || op === 'ARRAY_CONTAINS') {
       if (op === 'JSON_CONTAINS' || op === 'ARRAY_CONTAINS') {
         newExpr = `${op}(${n}, ${value})`;
         newExpr = `${op}(${n}, ${value})`;
       }
       }
+      // rewrite expression if the op is ARRAY_CONTAINS_ALL/ARRAY_CONTAINS_ANY
+      if (op === 'ARRAY_CONTAINS_ALL' || op === 'ARRAY_CONTAINS_ANY') {
+        newExpr = `${op}(${n}, ${value})`;
+      }
 
 
       return `${prev}${prev && !prev.endsWith('|| ') ? ' && ' : ''}${newExpr}`;
       return `${prev}${prev && !prev.endsWith('|| ') ? ' && ' : ''}${newExpr}`;
     }, '');
     }, '');

+ 4 - 0
client/src/components/advancedSearch/utils.ts

@@ -31,6 +31,10 @@ export const formatValue = (value: string, type: string, operator: string) => {
         case 'ARRAY_CONTAINS':
         case 'ARRAY_CONTAINS':
           conditionValue = `${value}`;
           conditionValue = `${value}`;
           break;
           break;
+        case 'ARRAY_CONTAINS_ALL':
+        case 'ARRAY_CONTAINS_ANY':
+          conditionValue = `[${value}]`;
+          break;
         default:
         default:
           conditionValue = `"${value}"`;
           conditionValue = `"${value}"`;
           break;
           break;

+ 8 - 0
client/src/consts/Util.ts

@@ -50,6 +50,14 @@ export const LOGICAL_OPERATORS = [
     value: 'ARRAY_CONTAINS',
     value: 'ARRAY_CONTAINS',
     label: 'ARRAY_CONTAINS',
     label: 'ARRAY_CONTAINS',
   },
   },
+  {
+    value: 'ARRAY_CONTAINS_ALL',
+    label: 'ARRAY_CONTAINS_ALL',
+  },
+  {
+    value: 'ARRAY_CONTAINS_ANY',
+    label: 'ARRAY_CONTAINS_ANY',
+  },
 ];
 ];
 
 
 export enum FILE_MIME_TYPE {
 export enum FILE_MIME_TYPE {