@@ -30,6 +30,8 @@ import javax.inject.Singleton
3030@InstallIn(SingletonComponent ::class )
3131object NetworkModule {
3232 private const val APPLICATION_JSON = " application/json"
33+ private const val REST_API_KEY = BuildConfig .KAKAO_REST_API_KEY
34+ private const val KAKAO_URL = " https://dapi.kakao.com"
3335
3436 @Provides
3537 @Singleton
@@ -74,6 +76,43 @@ object NetworkModule {
7476 override suspend fun clearTokens () = dataStore.clearAuthToken()
7577 }
7678
79+ @Provides
80+ @Singleton
81+ @Kakao
82+ fun provideKakaoAuthInterceptor (): Interceptor =
83+ Interceptor { chain ->
84+ val request = chain.request().newBuilder()
85+ .addHeader(" Authorization" , " KakaoAK $REST_API_KEY " )
86+ .build()
87+ chain.proceed(request)
88+ }
89+
90+ @Provides
91+ @Singleton
92+ @Kakao
93+ fun provideKakaoOkHttpClient (
94+ httpLoggingInterceptor : HttpLoggingInterceptor ,
95+ @Kakao kakaoAuthInterceptor : Interceptor ,
96+ ): OkHttpClient = OkHttpClient .Builder ()
97+ .addInterceptor(kakaoAuthInterceptor)
98+ .addInterceptor(httpLoggingInterceptor)
99+ .connectTimeout(10L , TimeUnit .SECONDS )
100+ .writeTimeout(30L , TimeUnit .SECONDS )
101+ .readTimeout(30L , TimeUnit .SECONDS )
102+ .build()
103+
104+ @Provides
105+ @Singleton
106+ @Kakao
107+ fun provideKakaoRetrofit (
108+ converterFactory : Converter .Factory ,
109+ @Kakao okHttpClient : OkHttpClient ,
110+ ): Retrofit = Retrofit .Builder ()
111+ .baseUrl(KAKAO_URL )
112+ .addConverterFactory(converterFactory)
113+ .client(okHttpClient)
114+ .build()
115+
77116 @Provides
78117 @Singleton
79118 fun provideTokenAuthenticator (
0 commit comments