diff --git a/src/main/java/com/didww/sdk/DidwwClient.java b/src/main/java/com/didww/sdk/DidwwClient.java index ee969742..7cbe730f 100644 --- a/src/main/java/com/didww/sdk/DidwwClient.java +++ b/src/main/java/com/didww/sdk/DidwwClient.java @@ -4,9 +4,9 @@ import com.didww.sdk.exception.DidwwClientException; import com.didww.sdk.http.ApiKeyInterceptor; import com.didww.sdk.http.JsonApiMediaType; +import com.didww.sdk.repository.BalanceRepository; import com.didww.sdk.repository.ReadOnlyRepository; import com.didww.sdk.repository.Repository; -import com.didww.sdk.repository.SingletonRepository; import com.didww.sdk.resource.*; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; @@ -129,8 +129,8 @@ public ReadOnlyRepository supportingDocumentTemplate } // Singleton repository - public SingletonRepository balance() { - return new SingletonRepository<>(httpClient, converter, baseUrl, "balance", Balance.class, objectMapper); + public BalanceRepository balance() { + return new BalanceRepository(httpClient, converter, baseUrl, "balance", objectMapper); } // CRUD repositories @@ -327,11 +327,7 @@ public void downloadAndDecompressExport(String url, Path destination) { try (InputStream fis = Files.newInputStream(tempFile); InputStream gzis = new GZIPInputStream(fis); OutputStream out = Files.newOutputStream(destination)) { - byte[] buffer = new byte[8192]; - int len; - while ((len = gzis.read(buffer)) != -1) { - out.write(buffer, 0, len); - } + gzis.transferTo(out); } } catch (IOException e) { throw new DidwwClientException("Failed to download and decompress export", e); diff --git a/src/main/java/com/didww/sdk/repository/SingletonRepository.java b/src/main/java/com/didww/sdk/repository/BalanceRepository.java similarity index 63% rename from src/main/java/com/didww/sdk/repository/SingletonRepository.java rename to src/main/java/com/didww/sdk/repository/BalanceRepository.java index 983c4951..d95b9b10 100644 --- a/src/main/java/com/didww/sdk/repository/SingletonRepository.java +++ b/src/main/java/com/didww/sdk/repository/BalanceRepository.java @@ -2,6 +2,7 @@ import com.didww.sdk.exception.DidwwClientException; import com.didww.sdk.http.QueryParams; +import com.didww.sdk.resource.Balance; import com.fasterxml.jackson.databind.ObjectMapper; import com.github.jasminb.jsonapi.JSONAPIDocument; import com.github.jasminb.jsonapi.ResourceConverter; @@ -10,26 +11,25 @@ import okhttp3.Request; import okhttp3.Response; -public class SingletonRepository extends ReadOnlyRepository { +public class BalanceRepository extends ReadOnlyRepository { - public SingletonRepository(OkHttpClient httpClient, ResourceConverter converter, - String baseUrl, String endpoint, Class resourceClass, - ObjectMapper objectMapper) { - super(httpClient, converter, baseUrl, endpoint, resourceClass, objectMapper); + public BalanceRepository(OkHttpClient httpClient, ResourceConverter converter, + String baseUrl, String endpoint, ObjectMapper objectMapper) { + super(httpClient, converter, baseUrl, endpoint, Balance.class, objectMapper); } - public ApiResponse find() { + public ApiResponse find() { return find((QueryParams) null); } - public ApiResponse find(QueryParams params) { + public ApiResponse find(QueryParams params) { String url = baseUrl + "/" + endpoint + (params != null ? params.toQueryString() : ""); Request request = new Request.Builder().url(url).get().build(); try (Response response = httpClient.newCall(request).execute()) { handleErrorResponse(response); byte[] body = getResponseBody(response); - JSONAPIDocument document = converter.readDocument(body, resourceClass); + JSONAPIDocument document = converter.readDocument(body, resourceClass); return new ApiResponse<>(document.get(), extractMeta(document)); } catch (IOException e) { throw new DidwwClientException("Failed to find " + endpoint, e); diff --git a/src/test/java/com/didww/sdk/resource/ExportTest.java b/src/test/java/com/didww/sdk/resource/ExportTest.java index 9c60e4c4..539e2472 100644 --- a/src/test/java/com/didww/sdk/resource/ExportTest.java +++ b/src/test/java/com/didww/sdk/resource/ExportTest.java @@ -159,8 +159,7 @@ void testDownloadAndDecompressExport() throws Exception { try { client.downloadAndDecompressExport(wireMock.baseUrl() + "/v3/exports/test-id.csv.gz", tempFile); String content = Files.readString(tempFile); - assertThat(content).contains("Date/Time Start (UTC)"); - assertThat(content).contains("972397239159652"); + assertThat(content).isEqualTo(csvContent); } finally { Files.deleteIfExists(tempFile); }