Remove default exports
[arvados-workbench2.git] / src / common / api / filter-builder.ts
index 1f2107f151cc9e374955ce8f0d40d8ab351c2843..28ad060f46b1e825c47ff0f0e04a6faf318c3603 100644 (file)
@@ -3,10 +3,9 @@
 // SPDX-License-Identifier: AGPL-3.0
 
 import * as _ from "lodash";
-import { Resource } from "./common-resource-service";
-
-export default class FilterBuilder<T extends Resource = Resource> {
+import { Resource } from "../../models/resource";
 
+export class FilterBuilder<T extends Resource = Resource> {
     static create<T extends Resource = Resource>(resourcePrefix = "") {
         return new FilterBuilder<T>(resourcePrefix);
     }
@@ -20,11 +19,11 @@ export default class FilterBuilder<T extends Resource = Resource> {
     }
 
     public addLike(field: keyof T, value?: string) {
-        return this.addCondition(field, "like", value, "", "%");
+        return this.addCondition(field, "like", value, "%", "%");
     }
 
     public addILike(field: keyof T, value?: string) {
-        return this.addCondition(field, "ilike", value, "", "%");
+        return this.addCondition(field, "ilike", value, "%", "%");
     }
 
     public addIsA(field: keyof T, value?: string | string[]) {
@@ -36,7 +35,7 @@ export default class FilterBuilder<T extends Resource = Resource> {
     }
 
     public concat<O extends Resource>(filterBuilder: FilterBuilder<O>) {
-        return new FilterBuilder(this.resourcePrefix, this.filters + this.getSeparator() + filterBuilder.getFilters());
+        return new FilterBuilder(this.resourcePrefix, this.filters + (this.filters && filterBuilder.filters ? "," : "") + filterBuilder.getFilters());
     }
 
     public getFilters() {
@@ -57,12 +56,8 @@ export default class FilterBuilder<T extends Resource = Resource> {
                 ? _.snakeCase(this.resourcePrefix) + "."
                 : "";
 
-            this.filters += `${this.getSeparator()}["${resourcePrefix}${_.snakeCase(field.toString())}","${cond}",${value}]`;
+            this.filters += `${this.filters ? "," : ""}["${resourcePrefix}${_.snakeCase(field.toString())}","${cond}",${value}]`;
         }
         return this;
     }
-
-    private getSeparator () {
-        return this.filters ? "," : "";
-    }
 }