package com.azimo.tool.slack.module; import com.azimo.tool.config.AppConfig; import com.azimo.tool.slack.SlackService; import com.azimo.tool.slack.SlackServiceManager; import com.azimo.tool.slack.interceptor.SlackContentTypeInterceptor; import com.google.gson.Gson; import dagger.Module; import dagger.Provides; import okhttp3.OkHttpClient; import javax.inject.Named; import javax.inject.Singleton; import java.util.concurrent.TimeUnit; /** * Created by F1sherKK on 24/01/17. */ @Module public class SlackModule { @Singleton @Provides @Named("SlackApi") public OkHttpClient provideSlackOkHttpClient() { OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder(); clientBuilder.addInterceptor(new SlackContentTypeInterceptor()); clientBuilder.connectTimeout(60 * 1000, TimeUnit.MILLISECONDS); clientBuilder.readTimeout(60 * 1000, TimeUnit.MILLISECONDS); clientBuilder.writeTimeout(60 * 1000, TimeUnit.MILLISECONDS); return clientBuilder.build(); } @Singleton @Provides public SlackService provideSlackIssueService(@Named("SlackApi") OkHttpClient slackOkHttp, Gson gson) { return new SlackService(slackOkHttp, gson); } @Singleton @Provides public SlackServiceManager provideSlackServiceManager(SlackService slackService, AppConfig appConfig) { return new SlackServiceManager(slackService, appConfig); } }