// Copyright (C) The Arvados Authors. All rights reserved. // // SPDX-License-Identifier: AGPL-3.0 export enum FilterField { UUID = "uuid", OWNER_UUID = "owner_uuid" } export default class FilterBuilder { private filters = ""; private addCondition(field: FilterField, cond: string, value?: string, prefix: string = "", postfix: string = "") { if (value) { this.filters += `["${field}","${cond}","${prefix}${value}${postfix}"]`; } return this; } public addEqual(field: FilterField, value?: string) { return this.addCondition(field, "=", value); } public addLike(field: FilterField, value?: string) { return this.addCondition(field, "like", value, "", "%"); } public addILike(field: FilterField, value?: string) { return this.addCondition(field, "ilike", value, "", "%"); } public get() { return "[" + this.filters + "]"; } }