X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/4a8d85d10073d2555253bdb631d293eaf7deccbf..f0d519637c997df11d5b1a1b32b3d9e4a2872325:/src/common/api/filter-builder.ts diff --git a/src/common/api/filter-builder.ts b/src/common/api/filter-builder.ts index 47772e2475..e5aab3ac72 100644 --- a/src/common/api/filter-builder.ts +++ b/src/common/api/filter-builder.ts @@ -3,39 +3,37 @@ // SPDX-License-Identifier: AGPL-3.0 import * as _ from "lodash"; -import { Resource } from "./common-resource-service"; -export default class FilterBuilder { - - static create(resourcePrefix = "") { - return new FilterBuilder(resourcePrefix); +export class FilterBuilder { + static create(resourcePrefix = "") { + return new FilterBuilder(resourcePrefix); } constructor( private resourcePrefix = "", private filters = "") { } - public addEqual(field: keyof T, value?: string) { + public addEqual(field: string, value?: string) { return this.addCondition(field, "=", value); } - public addLike(field: keyof T, value?: string) { + public addLike(field: string, value?: string) { return this.addCondition(field, "like", value, "%", "%"); } - public addILike(field: keyof T, value?: string) { + public addILike(field: string, value?: string) { return this.addCondition(field, "ilike", value, "%", "%"); } - public addIsA(field: keyof T, value?: string | string[]) { + public addIsA(field: string, value?: string | string[]) { return this.addCondition(field, "is_a", value); } - public addIn(field: keyof T, value?: string | string[]) { + public addIn(field: string, value?: string | string[]) { return this.addCondition(field, "in", value); } - public concat(filterBuilder: FilterBuilder) { + public concat(filterBuilder: FilterBuilder) { return new FilterBuilder(this.resourcePrefix, this.filters + (this.filters && filterBuilder.filters ? "," : "") + filterBuilder.getFilters()); } @@ -47,7 +45,7 @@ export default class FilterBuilder { return "[" + this.filters + "]"; } - private addCondition(field: keyof T, cond: string, value?: string | string[], prefix: string = "", postfix: string = "") { + private addCondition(field: string, cond: string, value?: string | string[], prefix: string = "", postfix: string = "") { if (value) { value = typeof value === "string" ? `"${prefix}${value}${postfix}"` @@ -61,5 +59,4 @@ export default class FilterBuilder { } return this; } - }