From 57372caf4edcc061f974b72bbbddaf4e5a3cfa67 Mon Sep 17 00:00:00 2001 From: Guilherme Werner Date: Thu, 21 Mar 2024 12:31:41 -0300 Subject: [PATCH] Revert "Inline mintaka library classes" --- lib/build.gradle | 1 + lib/src/main/java/com/tribufu/TribufuApi.java | 3 +- .../java/com/tribufu/http/HttpClient.java | 225 ------------------ .../com/tribufu/http/HttpClientOptions.java | 33 --- .../oauth2/OAuth2AuthorizeRequest.java | 20 -- .../tribufu/oauth2/OAuth2CodeResponse.java | 13 - .../com/tribufu/oauth2/OAuth2GrantType.java | 11 - .../tribufu/oauth2/OAuth2ResponseType.java | 8 - .../tribufu/oauth2/OAuth2TokenRequest.java | 26 -- .../tribufu/oauth2/OAuth2TokenResponse.java | 20 -- .../com/tribufu/oauth2/OAuth2TokenType.java | 7 - scripts/build.ps1 | 2 +- 12 files changed, 4 insertions(+), 365 deletions(-) delete mode 100644 lib/src/main/java/com/tribufu/http/HttpClient.java delete mode 100644 lib/src/main/java/com/tribufu/http/HttpClientOptions.java delete mode 100644 lib/src/main/java/com/tribufu/oauth2/OAuth2AuthorizeRequest.java delete mode 100644 lib/src/main/java/com/tribufu/oauth2/OAuth2CodeResponse.java delete mode 100644 lib/src/main/java/com/tribufu/oauth2/OAuth2GrantType.java delete mode 100644 lib/src/main/java/com/tribufu/oauth2/OAuth2ResponseType.java delete mode 100644 lib/src/main/java/com/tribufu/oauth2/OAuth2TokenRequest.java delete mode 100644 lib/src/main/java/com/tribufu/oauth2/OAuth2TokenResponse.java delete mode 100644 lib/src/main/java/com/tribufu/oauth2/OAuth2TokenType.java diff --git a/lib/build.gradle b/lib/build.gradle index e520d3e..da898eb 100644 --- a/lib/build.gradle +++ b/lib/build.gradle @@ -14,6 +14,7 @@ dependencies { api "org.apache.commons:commons-math3:3.6.1" implementation "com.google.code.gson:gson:2.8.9" implementation "com.google.guava:guava:31.1-jre" + implementation "dev.mintaka:Mintaka:0.1.0" testImplementation "org.junit.jupiter:junit-jupiter:5.9.1" } diff --git a/lib/src/main/java/com/tribufu/TribufuApi.java b/lib/src/main/java/com/tribufu/TribufuApi.java index e136afb..745c882 100644 --- a/lib/src/main/java/com/tribufu/TribufuApi.java +++ b/lib/src/main/java/com/tribufu/TribufuApi.java @@ -5,7 +5,8 @@ package com.tribufu; import com.tribufu.types.games.Game; import com.tribufu.types.servers.Server; import com.tribufu.types.users.Profile; -import com.tribufu.http.HttpClient; +import dev.mintaka.http.HttpClient; +import java.util.ArrayList; import java.util.concurrent.CompletableFuture; import java.util.HashMap; import java.util.List; diff --git a/lib/src/main/java/com/tribufu/http/HttpClient.java b/lib/src/main/java/com/tribufu/http/HttpClient.java deleted file mode 100644 index 4338abb..0000000 --- a/lib/src/main/java/com/tribufu/http/HttpClient.java +++ /dev/null @@ -1,225 +0,0 @@ -// Copyright (c) Tribufu. All Rights Reserved. - -package com.tribufu.http; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import java.net.http.HttpRequest; -import java.net.http.HttpResponse; -import java.net.URI; -import java.util.concurrent.CompletableFuture; -import java.util.Arrays; -import java.util.List; -import java.util.Map; - -/** - * Http Client - * - * Helper class to make HTTP requests. - */ -public class HttpClient { - private static final Gson gson = new GsonBuilder().create(); - - private final java.net.http.HttpClient inner; - protected final HttpClientOptions options; - - /** - * Create a default HttpClient instance. - */ - public HttpClient() { - this(new HttpClientOptions()); - } - - /** - * Create a HttpClient instance with the specified options. - * - * @param baseUrl - * @param headers - * @param logEnabled - * @param logTarget - */ - public HttpClient(String baseUrl, Map headers, boolean logEnabled, String logTarget) { - this(new HttpClientOptions(baseUrl, headers, logEnabled, logTarget)); - } - - /** - * Create a HttpClient instance with the specified options. - * - * @param options - */ - public HttpClient(HttpClientOptions options) { - this.options = options; - this.inner = java.net.http.HttpClient.newBuilder().build(); - } - - /** - * Helper method to send an asynchronous HTTP request. - */ - private CompletableFuture sendRequest(HttpRequest request) { - return this.inner.sendAsync(request, HttpResponse.BodyHandlers.ofString()).thenApply(HttpResponse::body); - } - - /** - * Helper method to send an asynchronous HTTP request. - */ - private CompletableFuture sendRequest(HttpRequest request, Class returnType) { - return this.inner.sendAsync(request, HttpResponse.BodyHandlers.ofString()) - .thenApply(response -> gson.fromJson(response.body(), returnType)); - } - - /** - * Helper method to build form URL-encoded data from a Map - */ - private HttpRequest.BodyPublisher buildFormDataFromMap(Map data) { - return HttpRequest.BodyPublishers.ofString( - data.entrySet().stream() - .map(entry -> entry.getKey() + "=" + entry.getValue()) - .reduce((param1, param2) -> param1 + "&" + param2) - .orElse("")); - } - - /** - * Make a GET request and deserialize the response JSON. - * - * @param path The path of the resource. - * @param headers Optional headers. - * @param returnType The type to deserialize the response into. - * @return A CompletableFuture containing the deserialized response object. - */ - public CompletableFuture get(String path, Map headers, Class returnType) { - var requestBuilder = HttpRequest.newBuilder(); - - for (var entry : headers.entrySet()) { - requestBuilder.header(entry.getKey(), entry.getValue()); - } - - var request = requestBuilder - .uri(URI.create(this.options.baseUrl + path)) - .GET() - .build(); - - return sendRequest(request, returnType); - } - - /** - * Make a GET request and deserialize the response JSON. - * - * @param path The path of the resource. - * @param headers Optional headers. - * @param returnType The type to deserialize the response into. - * @return A CompletableFuture containing the deserialized response object. - */ - public List getArray(String path, Map headers, Class returnType) { - var requestBuilder = HttpRequest.newBuilder(); - - for (var entry : headers.entrySet()) { - requestBuilder.header(entry.getKey(), entry.getValue()); - } - - var request = requestBuilder - .uri(URI.create(this.options.baseUrl + path)) - .GET() - .build(); - - var response = sendRequest(request); - T[] array = new Gson().fromJson(response.join(), returnType); - - return Arrays.asList(array); - } - - /** - * Make a POST request and deserialize the response JSON. - * - * @param path The path of the resource. - * @param body The request body. - * @param headers Optional headers. - * @param returnType The type to deserialize the response into. - * @return A CompletableFuture containing the deserialized response object. - */ - public CompletableFuture post(String path, S body, Map headers, Class returnType) { - var requestBuilder = HttpRequest.newBuilder(); - - for (var entry : headers.entrySet()) { - requestBuilder.header(entry.getKey(), entry.getValue()); - } - - var request = requestBuilder - .uri(URI.create(this.options.baseUrl + path)) - .POST(HttpRequest.BodyPublishers.ofString(gson.toJson(body))) - .build(); - - return sendRequest(request, returnType); - } - - /** - * Make a POST request with form URL-encoded data - * and deserialize the response JSON. - * - * @param path The path of the resource. - * @param formData The form data as a Map. - * @param headers Optional headers. - * @param returnType The type to deserialize the response into. - * @return A CompletableFuture containing the deserialized response object. - */ - public CompletableFuture postFormUrlEncoded(String path, Map formData, - Map headers, Class returnType) { - var requestBuilder = HttpRequest.newBuilder(); - - for (var entry : headers.entrySet()) { - requestBuilder.header(entry.getKey(), entry.getValue()); - } - - var request = requestBuilder - .uri(URI.create(this.options.baseUrl + path)) - .POST(buildFormDataFromMap(formData)) - .build(); - - return sendRequest(request, returnType); - } - - /** - * Make a PUT request and deserialize the response JSON. - * - * @param path The path of the resource. - * @param body The request body. - * @param headers Optional headers. - * @param returnType The type to deserialize the response into. - * @return A CompletableFuture containing the deserialized response object. - */ - public CompletableFuture put(String path, S body, Map headers, Class returnType) { - var requestBuilder = HttpRequest.newBuilder(); - - for (var entry : headers.entrySet()) { - requestBuilder.header(entry.getKey(), entry.getValue()); - } - - var request = requestBuilder - .uri(URI.create(this.options.baseUrl + path)) - .PUT(HttpRequest.BodyPublishers.ofString(gson.toJson(body))) - .build(); - - return sendRequest(request, returnType); - } - - /** - * Make a DELETE request. - * - * @param path The path of the resource. - * @param headers Optional headers. - * @return A CompletableFuture containing the response body as a String. - */ - public CompletableFuture delete(String path, Map headers) { - var requestBuilder = HttpRequest.newBuilder(); - - for (var entry : headers.entrySet()) { - requestBuilder.header(entry.getKey(), entry.getValue()); - } - - var request = requestBuilder - .uri(URI.create(this.options.baseUrl + path)) - .DELETE() - .build(); - - return sendRequest(request); - } -} diff --git a/lib/src/main/java/com/tribufu/http/HttpClientOptions.java b/lib/src/main/java/com/tribufu/http/HttpClientOptions.java deleted file mode 100644 index e1f7b1e..0000000 --- a/lib/src/main/java/com/tribufu/http/HttpClientOptions.java +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright (c) Tribufu. All Rights Reserved. - -package com.tribufu.http; - -import java.util.HashMap; -import java.util.Map; - -/** - * Http Client Options - * - * Options for creating a HttpClient instance. - */ -public class HttpClientOptions { - public String baseUrl; - public Map headers; - public boolean logEnabled; - public String logTarget; - - public HttpClientOptions() { - this(null); - } - - public HttpClientOptions(String baseUrl) { - this(baseUrl, new HashMap<>(), false, "HttpClient"); - } - - public HttpClientOptions(String baseUrl, Map headers, boolean logEnabled, String logTarget) { - this.baseUrl = baseUrl; - this.headers = headers; - this.logEnabled = logEnabled; - this.logTarget = logTarget; - } -} diff --git a/lib/src/main/java/com/tribufu/oauth2/OAuth2AuthorizeRequest.java b/lib/src/main/java/com/tribufu/oauth2/OAuth2AuthorizeRequest.java deleted file mode 100644 index 26967dd..0000000 --- a/lib/src/main/java/com/tribufu/oauth2/OAuth2AuthorizeRequest.java +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (c) Tribufu. All Rights Reserved. - -package com.tribufu.oauth2; - -public class OAuth2AuthorizeRequest { - public final OAuth2ResponseType responseType; - public final String clientId; - public final String scope; - public final String redirectUri; - public final String state; - - public OAuth2AuthorizeRequest(OAuth2ResponseType responseType, String clientId, String scope, String redirectUri, - String state) { - this.responseType = responseType; - this.clientId = clientId; - this.scope = scope; - this.redirectUri = redirectUri; - this.state = state; - } -} diff --git a/lib/src/main/java/com/tribufu/oauth2/OAuth2CodeResponse.java b/lib/src/main/java/com/tribufu/oauth2/OAuth2CodeResponse.java deleted file mode 100644 index c7a0241..0000000 --- a/lib/src/main/java/com/tribufu/oauth2/OAuth2CodeResponse.java +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright (c) Tribufu. All Rights Reserved. - -package com.tribufu.oauth2; - -public class OAuth2CodeResponse { - public final String code; - public final String state; - - public OAuth2CodeResponse(String code, String state) { - this.code = code; - this.state = state; - } -} diff --git a/lib/src/main/java/com/tribufu/oauth2/OAuth2GrantType.java b/lib/src/main/java/com/tribufu/oauth2/OAuth2GrantType.java deleted file mode 100644 index eb1cb8c..0000000 --- a/lib/src/main/java/com/tribufu/oauth2/OAuth2GrantType.java +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright (c) Tribufu. All Rights Reserved. - -package com.tribufu.oauth2; - -public enum OAuth2GrantType { - AuthorizationCode, - RefreshToken, - Password, - ClientCredentials, - DeviceCode, -} diff --git a/lib/src/main/java/com/tribufu/oauth2/OAuth2ResponseType.java b/lib/src/main/java/com/tribufu/oauth2/OAuth2ResponseType.java deleted file mode 100644 index 6309cad..0000000 --- a/lib/src/main/java/com/tribufu/oauth2/OAuth2ResponseType.java +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright (c) Tribufu. All Rights Reserved. - -package com.tribufu.oauth2; - -public enum OAuth2ResponseType { - Code, - Token, -} diff --git a/lib/src/main/java/com/tribufu/oauth2/OAuth2TokenRequest.java b/lib/src/main/java/com/tribufu/oauth2/OAuth2TokenRequest.java deleted file mode 100644 index 045907f..0000000 --- a/lib/src/main/java/com/tribufu/oauth2/OAuth2TokenRequest.java +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) Tribufu. All Rights Reserved. - -package com.tribufu.oauth2; - -public class OAuth2TokenRequest { - public final OAuth2GrantType grantType; - public final String code; - public final String refreshToken; - public final String username; - public final String password; - public final String clientId; - public final String clientSecret; - public final String redirectUri; - - public OAuth2TokenRequest(OAuth2GrantType grantType, String code, String refreshToken, String username, - String password, String clientId, String clientSecret, String redirectUri) { - this.grantType = grantType; - this.code = code; - this.refreshToken = refreshToken; - this.username = username; - this.password = password; - this.clientId = clientId; - this.clientSecret = clientSecret; - this.redirectUri = redirectUri; - } -} diff --git a/lib/src/main/java/com/tribufu/oauth2/OAuth2TokenResponse.java b/lib/src/main/java/com/tribufu/oauth2/OAuth2TokenResponse.java deleted file mode 100644 index 3e452f2..0000000 --- a/lib/src/main/java/com/tribufu/oauth2/OAuth2TokenResponse.java +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (c) Tribufu. All Rights Reserved. - -package com.tribufu.oauth2; - -public class OAuth2TokenResponse { - public final OAuth2TokenType tokenType; - public final String accessToken; - public final String refreshToken; - public final String scope; - public final int expiresIn; - - public OAuth2TokenResponse(OAuth2TokenType tokenType, String accessToken, String refreshToken, String scope, - int expiresIn) { - this.tokenType = tokenType; - this.accessToken = accessToken; - this.refreshToken = refreshToken; - this.scope = scope; - this.expiresIn = expiresIn; - } -} diff --git a/lib/src/main/java/com/tribufu/oauth2/OAuth2TokenType.java b/lib/src/main/java/com/tribufu/oauth2/OAuth2TokenType.java deleted file mode 100644 index 4a7321c..0000000 --- a/lib/src/main/java/com/tribufu/oauth2/OAuth2TokenType.java +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright (c) Tribufu. All Rights Reserved. - -package com.tribufu.oauth2; - -public enum OAuth2TokenType { - Bearer, -} diff --git a/scripts/build.ps1 b/scripts/build.ps1 index 8115355..f2349ab 100644 --- a/scripts/build.ps1 +++ b/scripts/build.ps1 @@ -1,3 +1,3 @@ -#!/usr/bin/env pwsh +#!/usr/bin/env sh .\gradlew build