From 8c7f85ae2574b42495c9c424d7290caef014687e Mon Sep 17 00:00:00 2001 From: juanf <juanf@ethz.ch> Date: Fri, 2 Jun 2023 16:13:26 +0200 Subject: [PATCH] SSDM-13251: Changes from code review --- .../sis/afsclient/client/AfsClientV2.java | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/api-data-store-server-java/src/main/java/ch/ethz/sis/afsclient/client/AfsClientV2.java b/api-data-store-server-java/src/main/java/ch/ethz/sis/afsclient/client/AfsClientV2.java index 6b8426906b0..3aac1025342 100644 --- a/api-data-store-server-java/src/main/java/ch/ethz/sis/afsclient/client/AfsClientV2.java +++ b/api-data-store-server-java/src/main/java/ch/ethz/sis/afsclient/client/AfsClientV2.java @@ -17,10 +17,7 @@ import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.nio.charset.StandardCharsets; import java.time.Duration; -import java.util.AbstractMap; -import java.util.List; -import java.util.Map; -import java.util.UUID; +import java.util.*; import java.util.stream.Stream; public final class AfsClientV2 implements PublicAPI @@ -155,7 +152,7 @@ public final class AfsClientV2 implements PublicAPI { validateSessionToken(); return request("POST", "write", Boolean.class, Map.of("owner", owner, "source", source, - "offset", offset.toString(), "md5Hash", getMd5HexString(md5Hash)), data); + "offset", offset.toString(), "data", Base64.getEncoder().encodeToString(data), "md5Hash", getMd5HexString(md5Hash))); } @Override @@ -223,15 +220,10 @@ public final class AfsClientV2 implements PublicAPI return request("POST", "recover", List.class, Map.of()); } - private <T> T request(@NonNull final String httpMethod, @NonNull final String apiMethod, Class<T> responseType, - @NonNull final Map<String, String> parameters) throws Exception - { - return request(httpMethod, apiMethod, responseType, parameters, new byte[0]); - } @SuppressWarnings({ "OptionalGetWithoutIsPresent", "unchecked" }) private <T> T request(@NonNull final String httpMethod, @NonNull final String apiMethod, Class<T> responseType, - @NonNull final Map<String, String> params, final byte @NonNull [] body) + @NonNull final Map<String, String> params) throws Exception { HttpClient.Builder clientBuilder = HttpClient.newBuilder() @@ -256,17 +248,27 @@ public final class AfsClientV2 implements PublicAPI params.put("transactionManagerKey", transactionManagerKey); } - final String query = Stream.concat( + String parameters = Stream.concat( Stream.of(new AbstractMap.SimpleImmutableEntry<>("method", apiMethod)), params.entrySet().stream()) .map(entry-> { return urlEncode(entry.getKey()) + "=" + urlEncode(entry.getValue()); }) .reduce((s1, s2) -> s1 + "&" + s2).get(); + // GET Request - Parameters on the query string + String queryParameters = null; + if (httpMethod.equals("GET")) { + queryParameters = parameters; + } + // POST Request - Parameters on body + byte[] body = null; + if (httpMethod.equals("POST")) { + body = parameters.getBytes(StandardCharsets.UTF_8); + } final URI uri = new URI(serverUri.getScheme(), null, serverUri.getHost(), serverUri.getPort(), - serverUri.getPath(), query, null); + serverUri.getPath(), queryParameters, null); HttpRequest.Builder builder = HttpRequest.newBuilder() .uri(uri) -- GitLab