refs #13535 Merge branch '13535-tree-component' into 13610-projects-hierarchy
[arvados-workbench2.git] / src / common / api / filter-builder.ts
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 export enum FilterField {
6     UUID = "uuid"
7 }
8
9 export default class FilterBuilder {
10     private filters = "";
11
12     private addCondition(field: FilterField, cond: string, value?: string) {
13         if (value) {
14             this.filters += `["${field}","${cond}","${value}"]`;
15         }
16         return this;
17     }
18
19     public addEqual(field: FilterField, value?: string) {
20         return this.addCondition(field, "=", value);
21     }
22
23     public addLike(field: FilterField, value?: string) {
24         return this.addCondition(field, "like", value);
25     }
26
27     public addILike(field: FilterField, value?: string) {
28         return this.addCondition(field, "ilike", value);
29     }
30
31     public get() {
32         return "[" + this.filters + "]";
33     }
34 }