Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Module
- class NetworkModule @Inject constructor(private val pref: IPreference) {
- @Singleton
- @Provides
- fun provideInterceptor(): Interceptor? = if (BuildConfig.DEBUG)
- HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY) else null
- @Provides
- @Singleton
- fun provideOkHttpClient(interceptor: Interceptor): OkHttpClient {
- val head = Interceptor { chain ->
- val original = chain.request()
- if (Storage.key.isEmpty()) {
- val request = original.newBuilder()
- .header("company", pref.getCompany())
- .header("Device", pref.getDeviceToken())
- .method(original.method(), original.body())
- .build()
- chain.proceed(request)
- } else {
- val request = original.newBuilder()
- .header("company", pref.getCompany())
- .header("Authorization", "Token ${Storage.key}")
- .header("Device", pref.getDeviceToken())
- .method(original.method(), original.body())
- .build()
- chain.proceed(request)
- }
- }
- return OkHttpClient.Builder()
- .addInterceptor(head)
- .addInterceptor(interceptor)
- .readTimeout(60, TimeUnit.SECONDS)
- .connectTimeout(10, TimeUnit.SECONDS)
- .build()
- }
- @Singleton
- @Provides
- fun provideGson(): Gson = GsonBuilder().setLenient().create()
- @Singleton
- @Provides
- fun provideRetrofit(okHttpClient: OkHttpClient, gson: Gson): Retrofit {
- return Retrofit.Builder()
- .baseUrl(pref.getBaseUrl())
- .client(okHttpClient)
- .addConverterFactory(GsonConverterFactory.create(gson))
- .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
- .build()
- }
- @Singleton
- @Provides
- fun provideNetApi(retrofit: Retrofit): QaKioskAPI = retrofit.create(QaKioskAPI::class.java)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement