Skip to content

Commit

Permalink
Merge branch 'hotfix/3.1.2'
Browse files Browse the repository at this point in the history
  • Loading branch information
mkellnhofer committed Aug 11, 2023
2 parents 7c24f05 + f65a3c1 commit f5dd2ef
Show file tree
Hide file tree
Showing 6 changed files with 63 additions and 28 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,15 @@ Add this dependency to your pom.xml:
<dependency>
<groupId>com.dracoon</groupId>
<artifactId>dracoon-sdk</artifactId>
<version>3.1.1</version>
<version>3.1.2</version>
</dependency>
```

##### Gradle

Add this dependency to your build.gradle:
```groovy
compile 'com.dracoon:dracoon-sdk:3.1.1'
compile 'com.dracoon:dracoon-sdk:3.1.2'
```

##### JAR import
Expand Down
12 changes: 9 additions & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

<groupId>com.dracoon</groupId>
<artifactId>dracoon-sdk</artifactId>
<version>3.1.1</version>
<version>3.1.2</version>

<name>Dracoon SDK</name>
<description>The Dracoon SDK for Java.</description>
Expand Down Expand Up @@ -61,13 +61,14 @@
<!-- dependencies versions -->
<dracoon-crypto-sdk.version>2.0.3</dracoon-crypto-sdk.version>
<gson.version>2.9.0</gson.version>
<okhttp.version>4.10.0</okhttp.version>
<okhttp.version>4.11.0</okhttp.version>
<okio.version>3.5.0</okio.version>
<retrofit.version>2.9.0</retrofit.version>

<!-- test dependencies versions -->
<junit.version>5.8.2</junit.version>
<mockito.version>4.6.1</mockito.version>
<mockwebserver.version>4.10.0</mockwebserver.version>
<mockwebserver.version>4.11.0</mockwebserver.version>

<!-- sonar -->
<sonar.host.url>https://${sonar.domain}</sonar.host.url>
Expand Down Expand Up @@ -101,6 +102,11 @@
<artifactId>okhttp</artifactId>
<version>${okhttp.version}</version>
</dependency>
<dependency>
<groupId>com.squareup.okio</groupId>
<artifactId>okio</artifactId>
<version>${okio.version}</version>
</dependency>
<dependency>
<groupId>com.squareup.retrofit2</groupId>
<artifactId>retrofit</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -300,6 +300,7 @@ protected void initHttpHelper() {

protected void initDracoonService() {
OkHttpClient httpClient = mHttpClient.newBuilder()
.followRedirects(false)
.addInterceptor(mAuthInterceptor)
.build();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,11 @@ public DracoonApiCode parseStandardError(Response response) {
}

public DracoonApiCode parseServerInfoQueryError(Response response) {
if (HttpStatus.valueOf(response.code()) == HttpStatus.NOT_FOUND) {
HttpStatus statusCode = HttpStatus.valueOf(response.code());
if (statusCode.is3xxRedirection() ||
statusCode == HttpStatus.UNAUTHORIZED ||
statusCode == HttpStatus.FORBIDDEN ||
statusCode == HttpStatus.NOT_FOUND) {
return DracoonApiCode.API_NOT_FOUND;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ private void initHttpClient() {
builder.readTimeout(mHttpConfig.getReadTimeout(), TimeUnit.SECONDS);
builder.writeTimeout(mHttpConfig.getWriteTimeout(), TimeUnit.SECONDS);
builder.retryOnConnectionFailure(true);
builder.followRedirects(false);
if (mHttpConfig.isProxyEnabled()) {
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(
mHttpConfig.getProxyAddress(), mHttpConfig.getProxyPort()));
Expand Down
67 changes: 45 additions & 22 deletions src/test/java/com/dracoon/sdk/internal/DracoonErrorParserTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -114,9 +114,12 @@ void testParseStandardError(int code, Integer errorCode, DracoonApiCode result)

@SuppressWarnings("unused")
private static Stream<Arguments> createTestParseServerInfoQueryErrorArguments() {
return createArguments(
getBaseTestArguments(),
new TestArguments(404, null, DracoonApiCode.API_NOT_FOUND));
return createArguments(Stream.of(
new TestArguments(301, null, DracoonApiCode.API_NOT_FOUND),
new TestArguments(302, null, DracoonApiCode.API_NOT_FOUND),
new TestArguments(401, null, DracoonApiCode.API_NOT_FOUND),
new TestArguments(403, null, DracoonApiCode.API_NOT_FOUND),
new TestArguments(500, null, DracoonApiCode.SERVER_UNKNOWN_ERROR)));
}

@ParameterizedTest
Expand Down Expand Up @@ -935,6 +938,13 @@ void testParseS3UploadStatusErrorRaw(int code, Integer errorCode, DracoonApiCode

// --- Helper methods ---

private static Stream<Arguments> createArguments(Stream<TestArguments> arguments) {
return arguments
.distinct()
.sorted()
.map(ta -> Arguments.of(ta.code, ta.errorCode, ta.result));
}

private static Stream<Arguments> createArguments(Stream<TestArguments> arguments,
TestArguments... newArguments) {
return Stream.concat(Stream.of(newArguments), arguments)
Expand All @@ -946,17 +956,24 @@ private static Stream<Arguments> createArguments(Stream<TestArguments> arguments

private DracoonApiCode executeParseMethod(int code, Integer errorCode,
Function<Response, DracoonApiCode> function) {
Response errorResponse;
if (errorCode == null) {
errorResponse = createErrorResponse(code);
Response response;
if (code < 400) {
response = createResponse(code);
} else if (errorCode == null) {
response = createErrorResponse(code);
} else {
errorResponse = createErrorResponse(code, errorCode);
response = createErrorResponse(code, errorCode);
}
return function.apply(errorResponse);
return function.apply(response);
}

private static Response createResponse(int code) {
ResponseBody responseBody = createEmptyJsonResponseBody();
return Response.error(responseBody, createOkHttpResponse(code, responseBody));
}

private static Response createErrorResponse(int code) {
return Response.error(code, ResponseBody.create("", MediaType.parse("application/json")));
return Response.error(code, createEmptyJsonResponseBody());
}

private static Response createErrorResponse(int code, Integer errorCode) {
Expand All @@ -965,28 +982,22 @@ private static Response createErrorResponse(int code, Integer errorCode) {
Gson gson = sGsonBuilder.create();
String json = gson.toJson(errorResponse);

return Response.error(code, ResponseBody.create(json, MediaType.parse("application/json")));
return Response.error(code, createJsonResponseBody(json));
}

private DracoonApiCode executeOkHttpParseMethod(int code, Integer errorCode,
Function<okhttp3.Response, DracoonApiCode> function) {
okhttp3.Response errorResponse;
okhttp3.Response response;
if (errorCode == null) {
errorResponse = createOkHttpErrorResponse(code);
response = createOkHttpErrorResponse(code);
} else {
errorResponse = createOkHttpErrorResponse(code, errorCode);
response = createOkHttpErrorResponse(code, errorCode);
}
return function.apply(errorResponse);
return function.apply(response);
}

private static okhttp3.Response createOkHttpErrorResponse(int code) {
return new okhttp3.Response.Builder()
.protocol(Protocol.HTTP_1_0)
.request(new Request.Builder().get().url("http://localhost").build())
.code(code)
.message("")
.body(ResponseBody.create("", MediaType.parse("application/json")))
.build();
return createOkHttpResponse(code, createEmptyJsonResponseBody());
}

private static okhttp3.Response createOkHttpErrorResponse(int code, Integer errorCode) {
Expand All @@ -995,15 +1006,27 @@ private static okhttp3.Response createOkHttpErrorResponse(int code, Integer erro
Gson gson = sGsonBuilder.create();
String json = gson.toJson(errorResponse);

return createOkHttpResponse(code, createJsonResponseBody(json));
}

private static okhttp3.Response createOkHttpResponse(int code, ResponseBody body) {
return new okhttp3.Response.Builder()
.protocol(Protocol.HTTP_1_0)
.request(new Request.Builder().get().url("http://localhost").build())
.code(code)
.message("")
.body(ResponseBody.create(json, MediaType.parse("application/json")))
.body(body)
.build();
}

private static ResponseBody createEmptyJsonResponseBody() {
return createJsonResponseBody("");
}

private static ResponseBody createJsonResponseBody(String json) {
return ResponseBody.create(json, MediaType.parse("application/json"));
}

private static ApiErrorResponse createApiErrorResponse(int code, Integer errorCode) {
ApiErrorResponse errorResponse = new ApiErrorResponse();
errorResponse.code = code;
Expand Down

0 comments on commit f5dd2ef

Please sign in to comment.