public Response intercept()

in app/src/main/java/org/apache/fineract/data/remote/FineractInterceptor.java [46:85]


    public Response intercept(@NonNull Chain chain) throws IOException {
        Request chainRequest = chain.request();
        Builder builder = chainRequest.newBuilder();

        //TODO fix call single time instead of calling every request
        String authToken = preferencesHelper.getAccessToken();
        String tenantIdentifier = preferencesHelper.getTenantIdentifier();
        String user = preferencesHelper.getUserName();
        Boolean refreshTokenStatus = preferencesHelper.getBoolean(
                PreferenceKey.PREF_KEY_REFRESH_ACCESS_TOKEN, false);

        builder.header(HEADER_ACCEPT_JSON, "application/json");
        builder.header(HEADER_CONTENT_TYPE, "application/json");

        if (refreshTokenStatus) {
            //Add Cookies
            HashSet<String> cookies = (HashSet<String>) preferencesHelper.getStringSet(
                            PreferenceKey.PREF_KEY_COOKIES);
            if (cookies != null) {
                for (String cookie : cookies) {
                    builder.addHeader("Cookie", cookie);
                }
            }
        } else {
            if (!TextUtils.isEmpty(authToken)) {
                builder.header(HEADER_AUTH, authToken);
            }

            if (!TextUtils.isEmpty(user)) {
                builder.header(HEADER_USER, user);
            }
        }

        if (!TextUtils.isEmpty(tenantIdentifier)) {
            builder.header(HEADER_TENANT, tenantIdentifier);
        }

        Request request = builder.build();
        return chain.proceed(request);
    }