@@ -11,8 +11,11 @@ import dagger.Provides
11
11
import dagger.hilt.InstallIn
12
12
import dagger.hilt.components.SingletonComponent
13
13
import okhttp3.Interceptor
14
+ import okhttp3.MediaType.Companion.toMediaTypeOrNull
14
15
import okhttp3.OkHttpClient
16
+ import okhttp3.Protocol
15
17
import okhttp3.Response
18
+ import okhttp3.ResponseBody.Companion.toResponseBody
16
19
import okhttp3.logging.HttpLoggingInterceptor
17
20
import retrofit2.Retrofit
18
21
import retrofit2.converter.moshi.MoshiConverterFactory
@@ -29,6 +32,9 @@ internal object NetworkModule {
29
32
private const val APIS_KEY_NAME = " ServiceKey"
30
33
private const val WS_KEY_NAME = " ServiceKey"
31
34
35
+ private const val TRANSPORT_URL = " transit/routes"
36
+ private const val FAKE_JSON_URL = " response.json"
37
+
32
38
@Provides
33
39
@Singleton
34
40
fun provideOkHttpClient (
@@ -150,6 +156,20 @@ internal object NetworkModule {
150
156
override fun intercept (chain : Interceptor .Chain ): Response {
151
157
val url = chain.request().url.toUri().toString()
152
158
159
+ if (chain.request().url.toUri().toString().contains(TRANSPORT_URL )) {
160
+ val response = readJson(FAKE_JSON_URL )
161
+ return chain.proceed(chain.request())
162
+ .newBuilder()
163
+ .code(200 )
164
+ .protocol(Protocol .HTTP_2 )
165
+ .message(" success" )
166
+ .body(
167
+ response.toByteArray()
168
+ .toResponseBody(" application/json" .toMediaTypeOrNull())
169
+ ).addHeader(" content-type" , " application/json" )
170
+ .build()
171
+ }
172
+
153
173
val (name: String , key: String ) = when {
154
174
url.contains(BuildConfig .OPEN_API_SEOUL_URL ) -> Pair (
155
175
OPEN_API_SEOUL_KEY_NAME ,
@@ -176,6 +196,12 @@ internal object NetworkModule {
176
196
.build()
177
197
proceed(newRequest)
178
198
}
199
+
200
+ }
201
+
202
+ private fun readJson (fileName : String ): String {
203
+ return Thread .currentThread().contextClassLoader?.getResource(fileName)
204
+ ?.readText() ? : " "
179
205
}
180
206
}
181
207
}
0 commit comments