package co.smartreceipts.android.apis.hosts;
import android.support.annotation.NonNull;
import com.google.common.base.Preconditions;
import com.google.gson.Gson;
import co.smartreceipts.android.apis.gson.SmartReceiptsGsonBuilder;
import co.smartreceipts.android.identity.store.IdentityStore;
import okhttp3.OkHttpClient;
public class SmartReceiptsHostConfiguration implements HostConfiguration {
private final IdentityStore identityStore;
private final SmartReceiptsGsonBuilder smartReceiptsGsonBuilder;
public SmartReceiptsHostConfiguration(@NonNull IdentityStore identityStore, @NonNull SmartReceiptsGsonBuilder smartReceiptsGsonBuilder) {
this.identityStore = Preconditions.checkNotNull(identityStore);
this.smartReceiptsGsonBuilder = Preconditions.checkNotNull(smartReceiptsGsonBuilder);
}
@NonNull
@Override
public String getBaseUrl() {
return "https://www.smartreceipts.co";
}
@NonNull
@Override
public final OkHttpClient getClient() {
return okHttpBuilder().addInterceptor(new SmartReceiptsAuthenticatedRequestInterceptor(identityStore)).build();
}
@NonNull
@Override
public final Gson getGson() {
return smartReceiptsGsonBuilder.create();
}
@NonNull
protected OkHttpClient.Builder okHttpBuilder() {
return new OkHttpClient.Builder();
}
}