|
32 | 32 | import okhttp3.ResponseBody; |
33 | 33 | import org.jetbrains.annotations.NotNull; |
34 | 34 | import so.trophy.resources.streaks.requests.StreaksListRequest; |
35 | | -import so.trophy.resources.streaks.requests.StreaksRankingsRequest; |
36 | 35 | import so.trophy.types.BulkStreakResponseItem; |
37 | 36 | import so.trophy.types.ErrorBody; |
38 | | -import so.trophy.types.StreakRankingUser; |
39 | 37 |
|
40 | 38 | public class AsyncRawStreaksClient { |
41 | 39 | protected final ClientOptions clientOptions; |
@@ -115,79 +113,4 @@ public void onFailure(@NotNull Call call, @NotNull IOException e) { |
115 | 113 | }); |
116 | 114 | return future; |
117 | 115 | } |
118 | | - |
119 | | - /** |
120 | | - * Get the top users by streak length (active or longest). |
121 | | - */ |
122 | | - public CompletableFuture<TrophyApiHttpResponse<List<StreakRankingUser>>> rankings() { |
123 | | - return rankings(StreaksRankingsRequest.builder().build()); |
124 | | - } |
125 | | - |
126 | | - /** |
127 | | - * Get the top users by streak length (active or longest). |
128 | | - */ |
129 | | - public CompletableFuture<TrophyApiHttpResponse<List<StreakRankingUser>>> rankings( |
130 | | - StreaksRankingsRequest request) { |
131 | | - return rankings(request,null); |
132 | | - } |
133 | | - |
134 | | - /** |
135 | | - * Get the top users by streak length (active or longest). |
136 | | - */ |
137 | | - public CompletableFuture<TrophyApiHttpResponse<List<StreakRankingUser>>> rankings( |
138 | | - StreaksRankingsRequest request, RequestOptions requestOptions) { |
139 | | - HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getApiURL()).newBuilder() |
140 | | - |
141 | | - .addPathSegments("streaks/rankings");if (request.getLimit().isPresent()) { |
142 | | - QueryStringMapper.addQueryParameter(httpUrl, "limit", request.getLimit().get(), false); |
143 | | - } |
144 | | - if (request.getType().isPresent()) { |
145 | | - QueryStringMapper.addQueryParameter(httpUrl, "type", request.getType().get(), false); |
146 | | - } |
147 | | - Request.Builder _requestBuilder = new Request.Builder() |
148 | | - .url(httpUrl.build()) |
149 | | - .method("GET", null) |
150 | | - .headers(Headers.of(clientOptions.headers(requestOptions))) |
151 | | - .addHeader("Accept", "application/json"); |
152 | | - Request okhttpRequest = _requestBuilder.build(); |
153 | | - OkHttpClient client = clientOptions.httpClient(); |
154 | | - if (requestOptions != null && requestOptions.getTimeout().isPresent()) { |
155 | | - client = clientOptions.httpClientWithTimeout(requestOptions); |
156 | | - } |
157 | | - CompletableFuture<TrophyApiHttpResponse<List<StreakRankingUser>>> future = new CompletableFuture<>(); |
158 | | - client.newCall(okhttpRequest).enqueue(new Callback() { |
159 | | - @Override |
160 | | - public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException { |
161 | | - try (ResponseBody responseBody = response.body()) { |
162 | | - if (response.isSuccessful()) { |
163 | | - future.complete(new TrophyApiHttpResponse<>(ObjectMappers.JSON_MAPPER.readValue(responseBody.string(), new TypeReference<List<StreakRankingUser>>() {}), response)); |
164 | | - return; |
165 | | - } |
166 | | - String responseBodyString = responseBody != null ? responseBody.string() : "{}"; |
167 | | - try { |
168 | | - switch (response.code()) { |
169 | | - case 401:future.completeExceptionally(new UnauthorizedError(ObjectMappers.JSON_MAPPER.readValue(responseBodyString, ErrorBody.class), response)); |
170 | | - return; |
171 | | - case 422:future.completeExceptionally(new UnprocessableEntityError(ObjectMappers.JSON_MAPPER.readValue(responseBodyString, ErrorBody.class), response)); |
172 | | - return; |
173 | | - } |
174 | | - } |
175 | | - catch (JsonProcessingException ignored) { |
176 | | - // unable to map error response, throwing generic error |
177 | | - } |
178 | | - future.completeExceptionally(new TrophyApiApiException("Error with status code " + response.code(), response.code(), ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class), response)); |
179 | | - return; |
180 | | - } |
181 | | - catch (IOException e) { |
182 | | - future.completeExceptionally(new TrophyApiException("Network error executing HTTP request", e)); |
183 | | - } |
184 | | - } |
185 | | - |
186 | | - @Override |
187 | | - public void onFailure(@NotNull Call call, @NotNull IOException e) { |
188 | | - future.completeExceptionally(new TrophyApiException("Network error executing HTTP request", e)); |
189 | | - } |
190 | | - }); |
191 | | - return future; |
192 | | - } |
193 | | - } |
| 116 | + } |
0 commit comments