20259: Add documentation for banner and tooltip features
[arvados.git] / sdk / java-v2 / src / main / java / org / arvados / client / api / client / KeepWebApiClient.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 okhttp3.HttpUrl;
11 import okhttp3.Request;
12 import okhttp3.RequestBody;
13 import org.arvados.client.config.ConfigProvider;
14
15 import java.io.File;
16
17 public class KeepWebApiClient extends BaseApiClient {
18
19     public KeepWebApiClient(ConfigProvider config) {
20         super(config);
21     }
22
23     public byte[] download(String collectionUuid, String filePathName) {
24         Request request = getRequestBuilder()
25                 .url(getUrlBuilder(collectionUuid,filePathName).build())
26                 .get()
27                 .build();
28
29         return newFileCall(request);
30     }
31
32     public String delete(String collectionUuid, String filePathName) {
33         Request request = getRequestBuilder()
34                 .url(getUrlBuilder(collectionUuid, filePathName).build())
35                 .delete()
36                 .build();
37
38         return newCall(request);
39     }
40
41     public String upload(String collectionUuid, File file, ProgressListener progressListener) {
42         RequestBody requestBody = new CountingFileRequestBody(file, progressListener);
43
44         Request request = getRequestBuilder()
45                 .url(getUrlBuilder(collectionUuid, file.getName()).build())
46                 .put(requestBody)
47                 .build();
48         return newCall(request);
49     }
50
51     private HttpUrl.Builder getUrlBuilder(String collectionUuid, String filePathName) {
52         return new HttpUrl.Builder()
53                 .scheme(config.getApiProtocol())
54                 .host(config.getKeepWebHost())
55                 .port(config.getKeepWebPort())
56                 .addPathSegment("c=" + collectionUuid)
57                 .addPathSegment(filePathName);
58     }
59 }