Skip to content

Commit 31fda0b

Browse files
committed
better generic programming
1 parent 54f8354 commit 31fda0b

File tree

7 files changed

+28
-25
lines changed

7 files changed

+28
-25
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>is.swan</groupId>
88
<artifactId>mcmarket-api-java-wrapper</artifactId>
9-
<version>1.2.2-SNAPSHOT</version>
9+
<version>1.2.3-SNAPSHOT</version>
1010

1111
<properties>
1212
<maven.compiler.source>17</maven.compiler.source>

src/main/java/is/swan/mcmarketapi/request/Client.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,19 @@ public Client(Token token) {
1414
this.throttler = new Throttler();
1515
}
1616

17-
public Response send(Request request) {
18-
Response response = getResponse(request);
17+
public <V> Response<V> send(Request<V> request) {
18+
Response<V> response = getResponse(request);
1919

2020
if (response.isRatelimited() || response.getError() != null) {
2121
return response;
2222
}
2323

24-
response.setValue(request.handleJson((String) response.getValue()));
24+
response.setValue(request.handleJson(response.getJson()));
2525

2626
return response;
2727
}
2828

29-
public Response sendOrWait(Request request) {
29+
public <V> Response<V> sendOrWait(Request<V> request) {
3030
long stallFor;
3131
while ((stallFor = this.throttler.stallFor(request.getMethod())) > 0) {
3232
try {
@@ -36,7 +36,7 @@ public Response sendOrWait(Request request) {
3636
}
3737
}
3838

39-
Response response = getResponse(request);
39+
Response<V> response = getResponse(request);
4040

4141
if (response.isRatelimited()) {
4242
if (request.getMethod() == Method.GET) {
@@ -58,12 +58,12 @@ public Response sendOrWait(Request request) {
5858
return response;
5959
}
6060

61-
response.setValue(request.handleJson((String) response.getValue()));
61+
response.setValue(request.handleJson(response.getJson()));
6262

6363
return response;
6464
}
6565

66-
private Response getResponse(Request request) {
66+
private <V> Response<V> getResponse(Request<V> request) {
6767
return switch(request.getMethod()) {
6868
case GET -> HTTPUtil.get(request.getURL(), token);
6969
case POST -> HTTPUtil.post(request.getURL(), request.getBody(), token);

src/main/java/is/swan/mcmarketapi/request/Response.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,19 @@
22

33
public class Response<V> {
44

5+
private final String json;
6+
57
private V value;
68
private boolean ratelimited;
79
private int millisecondsToWait;
810
private Error error;
911

10-
public Response(V value) {
11-
this.value = value;
12+
public Response(String json) {
13+
this.json = json;
14+
}
15+
16+
public String getJson() {
17+
return json;
1218
}
1319

1420
public V getValue() {
@@ -39,7 +45,7 @@ public Error getError() {
3945
return error;
4046
}
4147

42-
public Response setError(Error error) {
48+
public Response<V> setError(Error error) {
4349
this.error = error;
4450
return this;
4551
}

src/main/java/is/swan/mcmarketapi/request/requests/conversation/StartConversationRequest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package is.swan.mcmarketapi.request.requests.conversation;
22

3-
import com.google.gson.Gson;
43
import com.google.gson.JsonElement;
54
import is.swan.mcmarketapi.request.Request;
65

src/main/java/is/swan/mcmarketapi/request/requests/conversation/reply/ReplyToUnreadConversationRequest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package is.swan.mcmarketapi.request.requests.conversation.reply;
22

3-
import com.google.gson.Gson;
43
import com.google.gson.JsonElement;
54
import is.swan.mcmarketapi.request.Request;
65

src/main/java/is/swan/mcmarketapi/request/requests/thread/reply/ReplyToThreadRequest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package is.swan.mcmarketapi.request.requests.thread.reply;
22

3-
import com.google.gson.Gson;
43
import com.google.gson.JsonElement;
54
import is.swan.mcmarketapi.request.Request;
65

src/main/java/is/swan/mcmarketapi/utils/HTTPUtil.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
import com.google.gson.Gson;
44
import com.google.gson.JsonElement;
5+
import is.swan.mcmarketapi.Token;
56
import is.swan.mcmarketapi.request.Error;
67
import is.swan.mcmarketapi.request.Response;
7-
import is.swan.mcmarketapi.Token;
88

99
import java.io.IOException;
1010
import java.net.URI;
@@ -17,7 +17,7 @@ public class HTTPUtil {
1717
private static final HttpClient CLIENT = HttpClient.newHttpClient();
1818
private static final Gson GSON = new Gson();
1919

20-
public static Response<String> get(String url, Token token) {
20+
public static <V> Response<V> get(String url, Token token) {
2121
HttpRequest request = HttpRequest.newBuilder()
2222
.uri(URI.create(url))
2323
.header("Authorization", token.toString())
@@ -28,11 +28,11 @@ public static Response<String> get(String url, Token token) {
2828

2929
return getResponse(httpResponse);
3030
} catch (IOException | InterruptedException e) {
31-
return new Response<>("").setError(new Error(e.getClass().getName(), e.getMessage()));
31+
return new Response<V>("").setError(new Error(e.getClass().getName(), e.getMessage()));
3232
}
3333
}
3434

35-
public static Response<String> post(String url, String body, Token token) {
35+
public static <V> Response<V> post(String url, String body, Token token) {
3636
HttpRequest request = HttpRequest.newBuilder()
3737
.POST(HttpRequest.BodyPublishers.ofString(body))
3838
.uri(URI.create(url))
@@ -45,11 +45,11 @@ public static Response<String> post(String url, String body, Token token) {
4545

4646
return getResponse(httpResponse);
4747
} catch (IOException | InterruptedException e) {
48-
return new Response<>("").setError(new Error(e.getClass().getName(), e.getMessage()));
48+
return new Response<V>("").setError(new Error(e.getClass().getName(), e.getMessage()));
4949
}
5050
}
5151

52-
public static Response<String> delete(String url, Token token) {
52+
public static <V> Response<V> delete(String url, Token token) {
5353
HttpRequest request = HttpRequest.newBuilder()
5454
.DELETE()
5555
.uri(URI.create(url))
@@ -61,11 +61,11 @@ public static Response<String> delete(String url, Token token) {
6161

6262
return getResponse(httpResponse);
6363
} catch (IOException | InterruptedException e) {
64-
return new Response<>("").setError(new Error(e.getClass().getName(), e.getMessage()));
64+
return new Response<V>("").setError(new Error(e.getClass().getName(), e.getMessage()));
6565
}
6666
}
6767

68-
public static Response<String> patch(String url, String body, Token token) {
68+
public static <V> Response<V> patch(String url, String body, Token token) {
6969
HttpRequest request = HttpRequest.newBuilder()
7070
.method("PATCH", HttpRequest.BodyPublishers.ofString(body))
7171
.uri(URI.create(url))
@@ -78,12 +78,12 @@ public static Response<String> patch(String url, String body, Token token) {
7878

7979
return getResponse(httpResponse);
8080
} catch (IOException | InterruptedException e) {
81-
return new Response<>("").setError(new Error(e.getClass().getName(), e.getMessage()));
81+
return new Response<V>("").setError(new Error(e.getClass().getName(), e.getMessage()));
8282
}
8383
}
8484

85-
private static Response<String> getResponse(HttpResponse<String> httpResponse) {
86-
Response<String> response = new Response<>(httpResponse.body());
85+
private static <V> Response<V> getResponse(HttpResponse<String> httpResponse) {
86+
Response<V> response = new Response<>(httpResponse.body());
8787

8888
if (httpResponse.headers().firstValue("Retry-After").isPresent()) {
8989
response.setRatelimited(true);

0 commit comments

Comments
 (0)