com.taboola.backstage.internal.SynchronousCallAdapterFactory Maven / Gradle / Ivy
package com.taboola.backstage.internal;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.taboola.backstage.exceptions.BackstageAPIConnectivityException;
import com.taboola.backstage.exceptions.BackstageAPIRequestException;
import com.taboola.backstage.exceptions.BackstageAPIUnauthorizedException;
import com.taboola.backstage.model.APIError;
import okhttp3.ResponseBody;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import retrofit2.Call;
import retrofit2.CallAdapter;
import retrofit2.Response;
import retrofit2.Retrofit;
import java.io.IOException;
import java.lang.annotation.Annotation;
import java.lang.reflect.Type;
/**
* Created by vladi
* Date: 11/19/2017
* Time: 11:53 PM
* By Taboola
*/
public class SynchronousCallAdapterFactory extends CallAdapter.Factory {
private static final Logger logger = LogManager.getLogger(SynchronousCallAdapterFactory.class);
private static final int UNAUTHORIZED_HTTP_STATUS_CODE = 401;
private static final int BAD_REQUEST_HTTP_STATUS_CODE = 400;
private static final int INTERNAL_SERVER_ERROR_HTTP_STATUS_CODE = 500;
private final ObjectMapper objectMapper;
public static SynchronousCallAdapterFactory create(ObjectMapper objectMapper) {
return new SynchronousCallAdapterFactory(objectMapper);
}
private SynchronousCallAdapterFactory(ObjectMapper objectMapper) {
this.objectMapper = objectMapper;
}
@Override
public CallAdapter