@Module
@InstallIn(SingletonComponent::class)
objectNetworkModule {
@Provides
@Singleton
funprovidesHeaderInterceptor(sharedPreferences:SharedPreferences):Interceptor{
returnInterceptor{chain->
valbuilder = chain.request().newBuilder().apply{
valtoken = sharedPreferences.getString("token", "")
addHeader("token",requireNotNull(token))
}
chain.proceed(builder.build())
}
}
@Provides
@Singleton
funprovidesLoggingInterceptor(): HttpLoggingInterceptor {
returnHttpLoggingInterceptor().apply{
level = HttpLoggingInterceptor.Level.BASIC
}
}
@Provides
funprovidesOkHttpClient(
headerInterceptor:Interceptor,
loggingInterceptor: HttpLoggingInterceptor,
): OkHttpClient {
returnOkHttpClient.Builder()
.addInterceptor(headerInterceptor)
.addInterceptor(loggingInterceptor)
.build()
}
@Provides
@Singleton
funprovideRetrofit(okHttpClient: OkHttpClient): Retrofit {
returnRetrofit.Builder()
.client(okHttpClient)
.baseUrl("http://3.39.177.96/")
.addConverterFactory(GsonConverterFactory.create())
.build()
}
@Provides
@Singleton
funprovideSignInService(retrofit: Retrofit):SignInService{
returnretrofit.create(SignInService::class.java)
}
@Provides
@Singleton
funprovideFindPasswordService(retrofit: Retrofit):FindPasswordService{
returnretrofit.create(FindPasswordService::class.java)
}
}
Kotlin
복사