X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/a918d09702ac7b1ac111ea12ded1cdb2bd801e88..0be34acc576c9552f4c669062defe51c36888866:/src/common/api/order-builder.ts diff --git a/src/common/api/order-builder.ts b/src/common/api/order-builder.ts index 08d17b18e9..b5a2e807a0 100644 --- a/src/common/api/order-builder.ts +++ b/src/common/api/order-builder.ts @@ -3,7 +3,7 @@ // SPDX-License-Identifier: AGPL-3.0 import * as _ from "lodash"; -import { Resource } from "./common-resource-service"; +import { Resource } from "../../models/resource"; export default class OrderBuilder { @@ -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){