1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: AGPL-3.0
5 import { serverApi } from "../../common/api/server-api";
6 import { Dispatch } from "redux";
7 import { Project } from "../../models/project";
8 import FilterBuilder, { FilterField } from "../../common/api/filter-builder";
9 import { ArvadosResource } from "../response";
10 import { getResourceKind } from "../../models/resource";
12 interface GroupResource extends ArvadosResource {
16 writable_by: string[];
22 interface GroupsResponse {
25 items: GroupResource[];
28 export default class ProjectService {
29 public getProjectList = (parentUuid?: string): Promise<Project[]> => {
31 const fb = new FilterBuilder();
32 fb.addLike(FilterField.OWNER_UUID, parentUuid);
33 return serverApi.get<GroupsResponse>('/groups', { params: {
36 const projects = resp.data.items.map(g => ({
38 createdAt: g.created_at,
39 modifiedAt: g.modified_at,
42 ownerUuid: g.owner_uuid,
43 kind: getResourceKind(g.kind)
48 return Promise.resolve([]);