Add `not in` rule to filter-builder
authorMichal Klobukowski <michal.klobukowski@contractors.roche.com>
Thu, 22 Nov 2018 12:00:04 +0000 (13:00 +0100)
committerMichal Klobukowski <michal.klobukowski@contractors.roche.com>
Thu, 22 Nov 2018 12:00:04 +0000 (13:00 +0100)
Feature #14258

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski@contractors.roche.com>

src/services/api/filter-builder.test.ts
src/services/api/filter-builder.ts

index e365b331dd11e31493ac02eb689baaa91b0363af..13fde867024b42422f30606ee82e073652836617 100644 (file)
@@ -60,6 +60,12 @@ describe("FilterBuilder", () => {
         ).toEqual(`["etag","in",["etagValue1","etagValue2"]]`);
     });
 
+    it("should add 'not in' rule for set", () => {
+        expect(
+            filters.addIn("etag", ["etagValue1", "etagValue2"]).getFilters()
+        ).toEqual(`["etag","not in",["etagValue1","etagValue2"]]`);
+    });
+
     it("should add multiple rules", () => {
         expect(
             filters
index f83f574faf007fa948442cf32710c15c17cd9750..1ebf488636115c7dfb2cd9bcbf420d79ee82fa1b 100644 (file)
@@ -31,6 +31,10 @@ export class FilterBuilder {
         return this.addCondition(field, "in", value, "", "", resourcePrefix);
     }
 
+    public addNotIn(field: string, value?: string | string[], resourcePrefix?: string) {
+        return this.addCondition(field, "not in", value, "", "", resourcePrefix);
+    }
+
     public addGt(field: string, value?: string, resourcePrefix?: string) {
         return this.addCondition(field, ">", value, "", "", resourcePrefix);
     }