@@ -5,6 +5,9 @@ import android.content.Intent
55import com.threegap.bitnagil.BuildConfig
66import com.threegap.bitnagil.MainActivity
77import com.threegap.bitnagil.datastore.auth.storage.AuthTokenDataStore
8+ import com.threegap.bitnagil.network.Auth
9+ import com.threegap.bitnagil.network.Kakao
10+ import com.threegap.bitnagil.network.NoneAuth
811import com.threegap.bitnagil.network.auth.AuthInterceptor
912import com.threegap.bitnagil.network.auth.TokenAuthenticator
1013import com.threegap.bitnagil.network.token.ReissueService
@@ -30,6 +33,8 @@ import javax.inject.Singleton
3033@InstallIn(SingletonComponent ::class )
3134object NetworkModule {
3235 private const val APPLICATION_JSON = " application/json"
36+ private const val REST_API_KEY = BuildConfig .KAKAO_REST_API_KEY
37+ private const val KAKAO_URL = " https://dapi.kakao.com"
3338
3439 @Provides
3540 @Singleton
@@ -74,6 +79,43 @@ object NetworkModule {
7479 override suspend fun clearTokens () = dataStore.clearAuthToken()
7580 }
7681
82+ @Provides
83+ @Singleton
84+ @Kakao
85+ fun provideKakaoAuthInterceptor (): Interceptor =
86+ Interceptor { chain ->
87+ val request = chain.request().newBuilder()
88+ .addHeader(" Authorization" , " KakaoAK $REST_API_KEY " )
89+ .build()
90+ chain.proceed(request)
91+ }
92+
93+ @Provides
94+ @Singleton
95+ @Kakao
96+ fun provideKakaoOkHttpClient (
97+ httpLoggingInterceptor : HttpLoggingInterceptor ,
98+ @Kakao kakaoAuthInterceptor : Interceptor ,
99+ ): OkHttpClient = OkHttpClient .Builder ()
100+ .addInterceptor(kakaoAuthInterceptor)
101+ .addInterceptor(httpLoggingInterceptor)
102+ .connectTimeout(10L , TimeUnit .SECONDS )
103+ .writeTimeout(30L , TimeUnit .SECONDS )
104+ .readTimeout(30L , TimeUnit .SECONDS )
105+ .build()
106+
107+ @Provides
108+ @Singleton
109+ @Kakao
110+ fun provideKakaoRetrofit (
111+ converterFactory : Converter .Factory ,
112+ @Kakao okHttpClient : OkHttpClient ,
113+ ): Retrofit = Retrofit .Builder ()
114+ .baseUrl(KAKAO_URL )
115+ .addConverterFactory(converterFactory)
116+ .client(okHttpClient)
117+ .build()
118+
77119 @Provides
78120 @Singleton
79121 fun provideTokenAuthenticator (
0 commit comments