X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/c0b8c031bf6327c8ed22fb05ec40f3045b5aa1f1..5e805cf2209d3afe42699e4658d8a12e50bcd5a4:/src/services/ancestors-service/ancestors-service.ts diff --git a/src/services/ancestors-service/ancestors-service.ts b/src/services/ancestors-service/ancestors-service.ts index 697cd8fd..90a0bf84 100644 --- a/src/services/ancestors-service/ancestors-service.ts +++ b/src/services/ancestors-service/ancestors-service.ts @@ -2,11 +2,11 @@ // // SPDX-License-Identifier: AGPL-3.0 -import { GroupsService } from "~/services/groups-service/groups-service"; +import { GroupsService } from "services/groups-service/groups-service"; import { UserService } from '../user-service/user-service'; -import { GroupResource } from '~/models/group'; -import { UserResource } from '~/models/user'; -import { extractUuidObjectType, ResourceObjectType, TrashableResource } from "~/models/resource"; +import { GroupResource } from 'models/group'; +import { UserResource } from 'models/user'; +import { extractUuidObjectType, ResourceObjectType } from "models/resource"; export class AncestorService { constructor( @@ -14,30 +14,33 @@ export class AncestorService { private userService: UserService ) { } - async ancestors(uuid: string, rootUuid: string, previousUuid = ''): Promise> { + async ancestors(startUuid: string, endUuid: string): Promise> { + return this._ancestors(startUuid, endUuid); + } + + private async _ancestors(startUuid: string, endUuid: string, previousUuid = ''): Promise> { - if (uuid === previousUuid) { + if (startUuid === previousUuid) { return []; } - const service = this.getService(extractUuidObjectType(uuid)); + const service = this.getService(extractUuidObjectType(startUuid)); if (service) { try { - const resource = await service.get(uuid); - if (uuid === rootUuid) { + const resource = await service.get(startUuid, false); + if (startUuid === endUuid) { return [resource]; } else { return [ - ...await this.ancestors(resource.ownerUuid, rootUuid, uuid), + ...await this._ancestors(resource.ownerUuid, endUuid, startUuid), resource ]; } } catch (e) { return []; } - } else { - return []; } + return []; } private getService = (objectType?: string) => {