Package com.dwolla.java.sdk

Source Code of com.dwolla.java.sdk.DwollaCallback

package com.dwolla.java.sdk;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import retrofit.Callback;
import retrofit.RetrofitError;
import retrofit.client.Header;
import retrofit.client.Response;

import java.io.IOException;
import java.util.Scanner;

public abstract class DwollaCallback<T> implements Callback<T> {
    private Log log = LogFactory.getLog(DwollaCallback.class);

    public void setLog(Log log) {
        if (log != null) {
            this.log = log;
        }
    }

    @Override
    public void success(T t, Response response) {
        if (t != null) {
            log.info("Retrofit success: " + t.getClass().getName());
        }
    }

    public String formatErrorMessage(RetrofitError error) {
        Response response = error.getResponse();
        StringBuilder sb = new StringBuilder("Retrofit failure:\nUrl: ").append(error.getUrl());

        sb.append("\nisNetworkError: ").append(error.isNetworkError());
        sb.append("\nMessage: ").append(error.getMessage());
        sb.append("\nCause: ").append(error.getCause());

        if (response != null) {
            if (response.getStatus() != 0) {
                sb.append("\nStatus code: ").append(response.getStatus());
            }

            sb.append("\nReason: ").append(response.getReason());

            if (response.getHeaders() != null) {
                sb.append("\nHeaders:");
                for (Header header : response.getHeaders()) {
                    sb.append("\n").append(header.toString());
                }
            }

            if (response.getBody() != null) {
                sb.append("\nBody: ");
                try {
                    Scanner s = new Scanner(response.getBody().in());
                    s.useDelimiter("\\A");
                    sb.append(s.hasNext() ? s.next() : "");
                    s.close();
                } catch (IOException e) {
                    sb.append("Error parsing body");
                }
            }
        }

        return sb.toString();
    }

    public void failure(String message, DwollaCallback<?> c) {
        log.error("Dwolla API Failure - " + c.getClass().getName() + ": " + message);
    }

}
TOP

Related Classes of com.dwolla.java.sdk.DwollaCallback

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.