Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit fe93c2a0 authored by Tobias Kaminsky's avatar Tobias Kaminsky Committed by GitHub
Browse files

Merge pull request #288 from nextcloud/fix-retrofit-call-error

Fix retrofit call error
parents 2e6d60e7 5a2603a0
Loading
Loading
Loading
Loading
+17 −2
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@ import com.nextcloud.android.sso.exceptions.NextcloudHttpRequestFailedException;
import java.lang.reflect.Type;

import okhttp3.MediaType;
import okhttp3.Protocol;
import okhttp3.Request;
import okhttp3.ResponseBody;
import okio.BufferedSource;
@@ -16,6 +17,7 @@ import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;


/**
 *  Nextcloud SingleSignOn
 *
@@ -53,9 +55,9 @@ public final class Retrofit2Helper {
                    T body = nextcloudAPI.performRequestV2(resType, nextcloudRequest);
                    return Response.success(body);
                } catch (NextcloudHttpRequestFailedException e) {
                    return Response.error(e.getStatusCode(), ResponseBody.create(null, e.getCause().getMessage()));
                    return convertExceptionToResponse(e.getStatusCode(), e.getCause().getMessage());
                } catch (Exception e) {
                    return Response.error(520, ResponseBody.create(null, e.toString()));
                    return convertExceptionToResponse(520, e.toString());
                }
            }

@@ -99,6 +101,19 @@ public final class Retrofit2Helper {
            public Request request() {
                throw new UnsupportedOperationException("Not implemented");
            }

            private Response<T> convertExceptionToResponse(int statusCode, String errorMessage) {
                ResponseBody body = ResponseBody.create(null, errorMessage);
                return Response.error(
                        body,
                        new okhttp3.Response.Builder()
                                .body(body)
                                .code(statusCode)
                                .message(errorMessage)
                                .protocol(Protocol.HTTP_1_1)
                                .request(new Request.Builder().url("http://localhost/" + nextcloudRequest.getUrl()).build())
                                .build());
            }
        };
    }