package com.truckmuncher.app.dagger;
import com.squareup.okhttp.mockwebserver.MockWebServer;
import com.truckmuncher.api.auth.AuthService;
import com.truckmuncher.app.data.AuthErrorHandler;
import com.truckmuncher.app.data.AuthRequestInterceptor;
import javax.inject.Singleton;
import dagger.Module;
import dagger.Provides;
import retrofit.RestAdapter;
import retrofit.android.MainThreadExecutor;
@Module(overrides = true, library = true, complete = false)
public class LocalGlobalModule {
private final MockWebServer server;
public LocalGlobalModule(MockWebServer server) {
this.server = server;
}
@Singleton
@Provides
public RestAdapter provideRestAdapter(RestAdapter.Builder builder) {
return builder
.setEndpoint(server.getUrl("/").toString())
.setLogLevel(RestAdapter.LogLevel.FULL)
.setExecutors(new MainThreadExecutor(), new MainThreadExecutor())
.build();
}
@Singleton
@Provides
public AuthService provideAuthService(RestAdapter.Builder builder, AuthErrorHandler errorHandler, AuthRequestInterceptor interceptor) {
builder.setLogLevel(RestAdapter.LogLevel.FULL)
.setErrorHandler(errorHandler)
.setRequestInterceptor(interceptor)
.setEndpoint(server.getUrl("/").toString())
.setLogLevel(RestAdapter.LogLevel.FULL)
.setExecutors(new MainThreadExecutor(), new MainThreadExecutor());
return builder.build().create(AuthService.class);
}
}