// Copyright (C) The Arvados Authors. All rights reserved. // // SPDX-License-Identifier: AGPL-3.0 import { LinkResource } from "../../models/link"; import { GroupContentsResource, GroupContentsResourcePrefix } from "../groups-service/groups-service"; import { OrderBuilder } from "../../common/api/order-builder"; export class FavoriteOrderBuilder { static create( linkOrder = OrderBuilder.create(), contentOrder = OrderBuilder.create()) { return new FavoriteOrderBuilder(linkOrder, contentOrder); } private constructor( private linkOrder: OrderBuilder, private contentOrder: OrderBuilder ) { } addAsc(attribute: "name") { const linkOrder = this.linkOrder.addAsc(attribute); const contentOrder = this.contentOrder .concat(OrderBuilder.create(GroupContentsResourcePrefix.Collection).addAsc(attribute)) .concat(OrderBuilder.create(GroupContentsResourcePrefix.Process).addAsc(attribute)) .concat(OrderBuilder.create(GroupContentsResourcePrefix.Project).addAsc(attribute)); return FavoriteOrderBuilder.create(linkOrder, contentOrder); } addDesc(attribute: "name") { const linkOrder = this.linkOrder.addDesc(attribute); const contentOrder = this.contentOrder .concat(OrderBuilder.create(GroupContentsResourcePrefix.Collection).addDesc(attribute)) .concat(OrderBuilder.create(GroupContentsResourcePrefix.Process).addDesc(attribute)) .concat(OrderBuilder.create(GroupContentsResourcePrefix.Project).addDesc(attribute)); return FavoriteOrderBuilder.create(linkOrder, contentOrder); } getLinkOrder() { return this.linkOrder; } getContentOrder() { return this.contentOrder; } }