package org.gdg.frisbee.android.api;
import org.gdg.frisbee.android.utils.Utils;
import java.io.IOException;
import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
public final class GroupDirectoryFactory {
private static final String BASE_URL = "https://developers.google.com";
private GroupDirectoryFactory() {
}
private static Retrofit provideRestAdapter(OkHttpClient okHttpClient) {
OkHttpClient.Builder client = okHttpClient.newBuilder();
client.addInterceptor(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request compressedRequest = chain.request().newBuilder()
.header("User-Agent", "GDG-Frisbee/0.1 (Android)")
.header("Referrer", "https://developers.google.com/groups/directory/")
.header("X-Requested-With", "XMLHttpRequest")
.header("Cache-Control", "no-cache")
.header("DNT", "1")
.build();
return chain.proceed(compressedRequest);
}
});
return new Retrofit.Builder()
.baseUrl(BASE_URL)
.client(client.build())
.addConverterFactory(GsonConverterFactory.create(Utils.getGson()))
.build();
}
public static GroupDirectory provideGroupDirectoryApi(OkHttpClient okHttpClient) {
return provideRestAdapter(okHttpClient).create(GroupDirectory.class);
}
}