From: Michal Klobukowski Date: Thu, 5 Jul 2018 09:44:13 +0000 (+0200) Subject: Refactor OrderBuilder X-Git-Tag: 1.2.0~59^2~13 X-Git-Url: https://git.arvados.org/arvados-workbench2.git/commitdiff_plain/c497eae178ec7398381092817b69662af5701796 Refactor OrderBuilder Feature #13703 Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski --- diff --git a/src/common/api/order-builder.ts b/src/common/api/order-builder.ts index 08d17b18..31637914 100644 --- a/src/common/api/order-builder.ts +++ b/src/common/api/order-builder.ts @@ -15,23 +15,18 @@ export default class OrderBuilder { private order: string[] = [], private prefix = ""){} - private getRule (direction: string, attribute: keyof T) { + private addRule (direction: string, attribute: keyof T) { const prefix = this.prefix ? this.prefix + "." : ""; - return `${prefix}${_.snakeCase(attribute.toString())} ${direction}`; + const order = [...this.order, `${prefix}${_.snakeCase(attribute.toString())} ${direction}`]; + return new OrderBuilder(order, prefix); } addAsc(attribute: keyof T) { - return new OrderBuilder( - [...this.order, this.getRule("asc", attribute)], - this.prefix - ); + return this.addRule("asc", attribute); } addDesc(attribute: keyof T) { - return new OrderBuilder( - [...this.order, this.getRule("desc", attribute)], - this.prefix - ); + return this.addRule("desc", attribute); } concat(orderBuilder: OrderBuilder){