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 FilterBuilder from "../../common/api/filter-builder";
7 import { ArvadosResource } from "../response";
8 import { Collection } from "../../models/collection";
9 import { getResourceKind } from "../../models/resource";
11 interface CollectionResource extends ArvadosResource {
15 portable_data_hash: string;
16 manifest_text: string;
17 replication_desired: number;
18 replication_confirmed: number;
19 replication_confirmed_at: string;
25 interface CollectionsResponse {
28 items: CollectionResource[];
31 export default class CollectionService {
32 public getCollectionList = (parentUuid?: string): Promise<Collection[]> => {
34 const fb = new FilterBuilder();
35 fb.addLike("ownerUuid", parentUuid);
36 return serverApi.get<CollectionsResponse>('/collections', { params: {
37 filters: fb.serialize()
39 const collections = resp.data.items.map(g => ({
41 createdAt: g.created_at,
42 modifiedAt: g.modified_at,
45 ownerUuid: g.owner_uuid,
46 kind: getResourceKind(g.kind)
51 return Promise.resolve([]);