1 import { GroupsService } from "~/services/groups-service/groups-service";
2 import { UserService } from '../user-service/user-service';
3 import { GroupResource } from '~/models/group';
4 import { UserResource } from '../../models/user';
5 import { extractUuidObjectType, ResourceObjectType } from "~/models/resource";
7 // Copyright (C) The Arvados Authors. All rights reserved.
9 // SPDX-License-Identifier: AGPL-3.0
11 export class AncestorService {
13 private groupsService: GroupsService,
14 private userService: UserService
17 async ancestors(uuid: string, rootUuid: string): Promise<Array<UserResource | GroupResource>> {
18 const service = this.getService(extractUuidObjectType(uuid));
20 const resource = await service.get(uuid);
21 if (uuid === rootUuid) {
25 ...await this.ancestors(resource.ownerUuid, rootUuid),
34 private getService = (objectType?: string) => {
36 case ResourceObjectType.GROUP:
37 return this.groupsService;
38 case ResourceObjectType.USER:
39 return this.userService;