From c75bda19a301c0a197dda696208ea10b6459c54a Mon Sep 17 00:00:00 2001 From: Michal Klobukowski Date: Thu, 5 Jul 2018 12:11:21 +0200 Subject: [PATCH] Fix FilterBuilder concatenation add "like" rules Feature #13703 Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski --- src/common/api/filter-builder.ts | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/common/api/filter-builder.ts b/src/common/api/filter-builder.ts index 1f2107f1..47772e24 100644 --- a/src/common/api/filter-builder.ts +++ b/src/common/api/filter-builder.ts @@ -20,11 +20,11 @@ export default class FilterBuilder { } 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 +36,7 @@ export default class FilterBuilder { } public concat(filterBuilder: FilterBuilder) { - 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 +57,9 @@ export default class FilterBuilder { ? _.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 ? "," : ""; - } } -- 2.30.2