mirror of
https://github.com/k0shk0sh/FastHub.git
synced 2025-12-08 19:05:54 +00:00
57 lines
2.0 KiB
Java
57 lines
2.0 KiB
Java
package com.fastaccess.provider.rest;
|
|
|
|
import android.support.annotation.NonNull;
|
|
|
|
import com.fastaccess.BuildConfig;
|
|
import com.fastaccess.data.LoginRestService;
|
|
import com.fastaccess.data.service.UserRestService;
|
|
import com.fastaccess.provider.rest.converters.GithubResponseConverter;
|
|
import com.fastaccess.provider.rest.interceptors.AuthenticationInterceptor;
|
|
import com.google.gson.FieldNamingPolicy;
|
|
import com.google.gson.Gson;
|
|
import com.google.gson.GsonBuilder;
|
|
|
|
import java.lang.reflect.Modifier;
|
|
|
|
import okhttp3.OkHttpClient;
|
|
import okhttp3.logging.HttpLoggingInterceptor;
|
|
import retrofit2.Retrofit;
|
|
import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory;
|
|
|
|
/**
|
|
* Created by Kosh on 08 Feb 2017, 8:37 PM
|
|
*/
|
|
|
|
public class LoginProvider {
|
|
|
|
private final static Gson gson = new GsonBuilder()
|
|
.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
|
|
.excludeFieldsWithModifiers(Modifier.FINAL, Modifier.TRANSIENT, Modifier.STATIC)
|
|
.setDateFormat("yyyy-MM-dd HH:mm:ss")
|
|
.setPrettyPrinting()
|
|
.create();
|
|
|
|
private static OkHttpClient provideOkHttpClient(@NonNull String authToken) {
|
|
OkHttpClient.Builder client = new OkHttpClient.Builder();
|
|
if (BuildConfig.DEBUG) {
|
|
client.addInterceptor(new HttpLoggingInterceptor()
|
|
.setLevel(HttpLoggingInterceptor.Level.BODY));
|
|
}
|
|
client.addInterceptor(new AuthenticationInterceptor(authToken));
|
|
return client.build();
|
|
}
|
|
|
|
private static Retrofit provideRetrofit(@NonNull String authToken) {
|
|
return new Retrofit.Builder()
|
|
.baseUrl(BuildConfig.REST_URL)
|
|
.client(provideOkHttpClient(authToken))
|
|
.addConverterFactory(new GithubResponseConverter(gson))
|
|
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
|
|
.build();
|
|
}
|
|
|
|
@NonNull public static LoginRestService getLoginRestService(@NonNull String authToken) {
|
|
return provideRetrofit(authToken).create(LoginRestService.class);
|
|
}
|
|
}
|