21700: Install Bundler system-wide in Rails postinst
[arvados.git] / sdk / java-v2 / src / main / java / org / arvados / client / api / client / CollectionsApiClient.java
1 /*
2  * Copyright (C) The Arvados Authors. All rights reserved.
3  *
4  * SPDX-License-Identifier: AGPL-3.0 OR Apache-2.0
5  *
6  */
7
8 package org.arvados.client.api.client;
9
10 import org.arvados.client.api.model.Collection;
11 import org.arvados.client.api.model.CollectionList;
12 import org.arvados.client.api.model.CollectionReplaceFiles;
13 import org.arvados.client.config.ConfigProvider;
14 import org.slf4j.Logger;
15
16 import okhttp3.HttpUrl;
17 import okhttp3.Request;
18 import okhttp3.RequestBody;
19
20 public class CollectionsApiClient extends BaseStandardApiClient<Collection, CollectionList> {
21
22     private static final String RESOURCE = "collections";
23
24     private final Logger log = org.slf4j.LoggerFactory.getLogger(CollectionsApiClient.class);
25
26     public CollectionsApiClient(ConfigProvider config) {
27         super(config);
28     }
29     
30     @Override
31     public Collection create(Collection type) {
32         Collection newCollection = super.create(type);
33         log.debug(String.format("New collection '%s' with UUID %s has been created", newCollection.getName(), newCollection.getUuid()));
34         return newCollection;
35     }
36
37     public Collection update(String collectionUUID, CollectionReplaceFiles replaceFilesRequest) {
38         String json = mapToJson(replaceFilesRequest);
39         RequestBody body = RequestBody.create(JSON, json);
40         HttpUrl url = getUrlBuilder().addPathSegment(collectionUUID).build();
41         Request request = getRequestBuilder().put(body).url(url).build();
42         return callForType(request);
43     }
44
45     @Override
46     String getResource() {
47         return RESOURCE;
48     }
49
50     @Override
51     Class<Collection> getType() {
52         return Collection.class;
53     }
54
55     @Override
56     Class<CollectionList> getListType() {
57         return CollectionList.class;
58     }
59 }