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

Commit e16cdea6 authored by Artur's avatar Artur Committed by desperateCoder
Browse files

Merge pull request #2 from nextcloud/header-refactoring



refactor / cleanup

Signed-off-by: default avatardesperateCoder <echotodevnull@gmail.com>
parents f45c5a15 31ef8373
Loading
Loading
Loading
Loading
+8 −24
Original line number Diff line number Diff line
@@ -48,7 +48,6 @@ public class NextcloudAPI {
    private NetworkRequest networkRequest;
    private Gson gson;


    @Documented
    @Target(METHOD)
    @Retention(RUNTIME)
@@ -96,7 +95,6 @@ public class NextcloudAPI {
        return Observable.fromPublisher( s-> {
            try {
                Response response = performNetworkRequestV2(request);

                s.onNext(ParsedResponse.of(convertStreamToTargetEntity(response.getBody(), type), response.getPlainHeaders()));
                s.onComplete();
            } catch (Exception e) {
@@ -107,10 +105,13 @@ public class NextcloudAPI {

    public <T> T performRequest(final @NonNull Type type, NextcloudRequest request) throws Exception {
        Log.d(TAG, "performRequest() called with: type = [" + type + "], request = [" + request + "]");
        return convertStreamToTargetEntity(performNetworkRequest(request), type);
    }

        T result = convertStreamToTargetEntity(performNetworkRequest(request), type);

        return result;
    public <T> T performRequestV2(final @NonNull Type type, NextcloudRequest request) throws Exception {
        Log.d(TAG, "performRequestV2() called with: type = [" + type + "], request = [" + request + "]");
        Response response = performNetworkRequestV2(request);
        return convertStreamToTargetEntity(response.getBody(), type);
    }

    private <T> T convertStreamToTargetEntity(InputStream inputStream, Type targetEntity) throws IOException {
@@ -119,9 +120,11 @@ public class NextcloudAPI {
             Reader targetReader = new InputStreamReader(os)) {
            if (targetEntity != Void.class) {
                result = gson.fromJson(targetReader, targetEntity);
                /*
                if (result != null) {
                    Log.d(TAG, result.toString());
                }
                */
            }
        }
        return result;
@@ -139,25 +142,6 @@ public class NextcloudAPI {
        return networkRequest.performNetworkRequest(request, request.getBodyAsStream());
    }

    public Response performRequestV2(final @NonNull Type type, NextcloudRequest request) throws Exception {
        Log.d(TAG, "performRequestV2() called with: type = [" + type + "], request = [" + request + "]");

        Response result = null;
        Response response = performNetworkRequestV2(request);
        Reader targetReader = new InputStreamReader(response.getBody());

        if (type != Void.class) {
            //FIXME: @original-devs: this will never work (ClassCastException), unless type is Response.
            result = gson.fromJson(targetReader, type);
            if (result != null) {
                Log.d(TAG, result.toString());
            }

        }
        return result;
    }


    /**
     * The InputStreams needs to be closed after reading from it
     *
+3 −3
Original line number Diff line number Diff line
@@ -187,19 +187,19 @@ public class NextcloudRetrofitServiceMethod<T> {
                    }
                }
                //fallback
                return (T) nextcloudAPI.performRequestObservable(typeArgument, request);
                return (T) nextcloudAPI.performRequestObservableV2(typeArgument, request).map(r -> r.getResponse());

            } else if(ownerType == Call.class) {
                Type typeArgument = type.getActualTypeArguments()[0];
                return (T) Retrofit2Helper.WrapInCall(nextcloudAPI, request, typeArgument);
            }
        } else if(this.returnType == Observable.class) {
            return (T) nextcloudAPI.performRequestObservable(Object.class, request);
            return (T) nextcloudAPI.performRequestObservableV2(Object.class, request).map(r -> r.getResponse());
        } else if (this.returnType == Completable.class) {
            return (T) ReactivexHelper.wrapInCompletable(nextcloudAPI, request);
        }

        return nextcloudAPI.performRequest(this.returnType, request);
        return nextcloudAPI.performRequestV2(this.returnType, request);
    }

    private void addHeader(NextcloudRequest.Builder rBuilder, String key, Object value) {
+2 −2
Original line number Diff line number Diff line
@@ -22,7 +22,7 @@ public class ParsedResponse <T> {
    }

    public static <T> ParsedResponse<T> of(T data, ArrayList<AidlNetworkRequest.PlainHeader> headers) {
        return new ParsedResponse<>(data, headers);
        return new ParsedResponse<T>(data, headers);
    }

    public T getResponse() {
+1 −1
Original line number Diff line number Diff line
@@ -29,7 +29,7 @@ public final class ReactivexHelper {
    private ReactivexHelper() { }

    public static Completable wrapInCompletable(final NextcloudAPI nextcloudAPI, final NextcloudRequest request) {
        return Completable.fromAction(() -> nextcloudAPI.performRequest(Void.class, request));
        return Completable.fromAction(() -> nextcloudAPI.performRequestV2(Void.class, request));
    }

}
+1 −1
Original line number Diff line number Diff line
@@ -50,7 +50,7 @@ public final class Retrofit2Helper {
            @Override
            public Response<T> execute() {
                try {
                    T body = nextcloudAPI.performRequest(resType, nextcloudRequest);
                    T body = nextcloudAPI.performRequestV2(resType, nextcloudRequest);
                    return Response.success(body);
                } catch (NextcloudHttpRequestFailedException e) {
                    return Response.error(e.getStatusCode(), ResponseBody.create(null, e.getCause().getMessage()));
Loading