11package com.ninecraft.booket.core.network.di
22
3- import com.orhanobut.logger.Logger
3+ import android.util.Log
44import dagger.Module
55import dagger.Provides
66import dagger.hilt.InstallIn
@@ -12,7 +12,11 @@ import okhttp3.logging.HttpLoggingInterceptor
1212import retrofit2.Retrofit
1313import retrofit2.converter.kotlinx.serialization.asConverterFactory
1414import com.ninecraft.booket.core.network.BuildConfig
15- import com.ninecraft.booket.core.network.service.BooketService
15+ import com.ninecraft.booket.core.network.TokenInterceptor
16+ import com.ninecraft.booket.core.network.service.AuthService
17+ import com.ninecraft.booket.core.network.service.NoAuthService
18+ import com.orhanobut.logger.AndroidLogAdapter
19+ import com.orhanobut.logger.PrettyFormatStrategy
1620import retrofit2.create
1721import java.util.concurrent.TimeUnit
1822import javax.inject.Singleton
@@ -34,9 +38,26 @@ internal object NetworkModule {
3438
3539 @Singleton
3640 @Provides
37- internal fun provideHttpLoggingInterceptor (): HttpLoggingInterceptor {
41+ internal fun provideNetworkLogAdapter (): AndroidLogAdapter {
42+ val networkFormatStrategy = PrettyFormatStrategy .newBuilder()
43+ .showThreadInfo(false ) // 스레드 정보 제거
44+ .methodCount(0 ) // 메서드 스택 제거
45+ .methodOffset(0 ) // 오프셋 제거
46+ .tag(" NETWORK" ) // API 호출 전용 태그
47+ .build()
48+
49+ return AndroidLogAdapter (networkFormatStrategy)
50+ }
51+
52+ @Singleton
53+ @Provides
54+ internal fun provideHttpLoggingInterceptor (
55+ networkLogAdapter : AndroidLogAdapter ,
56+ ): HttpLoggingInterceptor {
3857 return HttpLoggingInterceptor { message ->
39- Logger .d(message)
58+ if (message.isNotBlank()) {
59+ networkLogAdapter.log(Log .DEBUG , null , message)
60+ }
4061 }.apply {
4162 level = if (BuildConfig .DEBUG ) {
4263 HttpLoggingInterceptor .Level .BODY
@@ -46,9 +67,26 @@ internal object NetworkModule {
4667 }
4768 }
4869
70+ @AuthOkHttpClient
71+ @Singleton
72+ @Provides
73+ internal fun provideAuthOkHttpClient (
74+ httpLoggingInterceptor : HttpLoggingInterceptor ,
75+ tokenInterceptor : TokenInterceptor ,
76+ ): OkHttpClient {
77+ return OkHttpClient .Builder ()
78+ .connectTimeout(MaxTimeoutMillis , TimeUnit .MILLISECONDS )
79+ .readTimeout(MaxTimeoutMillis , TimeUnit .MILLISECONDS )
80+ .writeTimeout(MaxTimeoutMillis , TimeUnit .MILLISECONDS )
81+ .addInterceptor(tokenInterceptor)
82+ .addInterceptor(httpLoggingInterceptor)
83+ .build()
84+ }
85+
86+ @NoAuthOkHttpClient
4987 @Singleton
5088 @Provides
51- internal fun provideOkHttpClient (
89+ internal fun provideNoAuthOkHttpClient (
5290 httpLoggingInterceptor : HttpLoggingInterceptor ,
5391 ): OkHttpClient {
5492 return OkHttpClient .Builder ()
@@ -59,10 +97,11 @@ internal object NetworkModule {
5997 .build()
6098 }
6199
100+ @AuthRetrofit
62101 @Singleton
63102 @Provides
64- internal fun provideRetrofit (
65- okHttpClient : OkHttpClient ,
103+ internal fun provideAuthRetrofit (
104+ @AuthOkHttpClient okHttpClient : OkHttpClient ,
66105 ): Retrofit {
67106 return Retrofit .Builder ()
68107 .baseUrl(BuildConfig .SERVER_BASE_URL )
@@ -71,11 +110,32 @@ internal object NetworkModule {
71110 .build()
72111 }
73112
113+ @NoAuthRetrofit
114+ @Singleton
115+ @Provides
116+ internal fun provideNoAuthRetrofit (
117+ @NoAuthOkHttpClient okHttpClient : OkHttpClient ,
118+ ): Retrofit {
119+ return Retrofit .Builder ()
120+ .baseUrl(BuildConfig .SERVER_BASE_URL )
121+ .client(okHttpClient)
122+ .addConverterFactory(jsonConverterFactory)
123+ .build()
124+ }
125+
126+ @Singleton
127+ @Provides
128+ internal fun provideAuthService (
129+ @AuthRetrofit retrofit : Retrofit ,
130+ ): AuthService {
131+ return retrofit.create()
132+ }
133+
74134 @Singleton
75135 @Provides
76- internal fun provideBooketService (
77- retrofit : Retrofit ,
78- ): BooketService {
136+ internal fun provideNoAuthService (
137+ @NoAuthRetrofit retrofit : Retrofit ,
138+ ): NoAuthService {
79139 return retrofit.create()
80140 }
81141}
0 commit comments