Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordesperateCoder <echotodevnull@gmail.com>2023-04-09 18:41:00 +0300
committerdesperateCoder <echotodevnull@gmail.com>2024-01-03 16:12:53 +0300
commit6945c197e0656d45f61eaf75be427bdb00d352c0 (patch)
tree47410b14fb51c0dea57cf062824b8320d94e150d /app/src/main/java/it/niedermann/nextcloud/deck/remote
parentdbba1654ad6c61288251d63a08392ccd54fca789 (diff)
enhance exception on failed calls
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/remote')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/remote/api/RequestHelper.java22
1 files changed, 21 insertions, 1 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/remote/api/RequestHelper.java b/app/src/main/java/it/niedermann/nextcloud/deck/remote/api/RequestHelper.java
index 6ed3cfb28..9d70f56b5 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/remote/api/RequestHelper.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/remote/api/RequestHelper.java
@@ -6,6 +6,7 @@ import com.nextcloud.android.sso.exceptions.NextcloudHttpRequestFailedException;
import it.niedermann.nextcloud.deck.DeckLog;
import it.niedermann.nextcloud.deck.util.ExecutorServiceProvider;
+import okhttp3.Request;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
@@ -47,11 +48,30 @@ public class RequestHelper {
callback.fillAccountIDs(responseObject);
callback.onResponseWithHeaders(responseObject, response.headers());
} else {
- onFailure(call, new NextcloudHttpRequestFailedException(response.code(), new RuntimeException("HTTP StatusCode wasn't 2xx")));
+
+ onFailure(call, new NextcloudHttpRequestFailedException(response.code(), buildCause(call, response)));
}
});
}
+ private RuntimeException buildCause(Call<T> call, Response<T> response){
+ Request request = call.request();
+ String url = request.url().redact();
+ String method = request.method();
+ int code = response.code();
+ String responseBody = "<empty>";
+ try ( var body = response.errorBody()) {
+ if (body != null) {
+ responseBody = body.string();
+ }
+ } catch (Exception e) {
+ responseBody = "<unable to build response body: "+e.getMessage()+">";
+ }
+ return new RuntimeException("HTTP StatusCode wasn't 2xx:\n" +
+ "Got [HTTP " + code + "] for Call [" + method + " " + url + "] with Message:\n" +
+ "[" + responseBody + "]");
+ }
+
@Override
public void onFailure(Call<T> call, Throwable t) {
ExecutorServiceProvider.getLinkedBlockingQueueExecutor().submit( () -> {