From 51d9a3fb6efd06e19c91993a686b3fac02945b31 Mon Sep 17 00:00:00 2001 From: Sergejs Luhmirins Date: Mon, 22 Apr 2024 10:21:24 +0300 Subject: [PATCH] MS-427 Add request ID to response headers locally --- .../network/httpclient/DefaultOkHttpClientBuilder.kt | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/infra/network/src/main/java/com/simprints/infra/network/httpclient/DefaultOkHttpClientBuilder.kt b/infra/network/src/main/java/com/simprints/infra/network/httpclient/DefaultOkHttpClientBuilder.kt index fccf8c27ed..408583c813 100644 --- a/infra/network/src/main/java/com/simprints/infra/network/httpclient/DefaultOkHttpClientBuilder.kt +++ b/infra/network/src/main/java/com/simprints/infra/network/httpclient/DefaultOkHttpClientBuilder.kt @@ -59,7 +59,7 @@ internal class DefaultOkHttpClientBuilder @Inject constructor( } } .addNetworkInterceptor(ChuckerInterceptor.Builder(ctx).build()) - .addInterceptor(buildRequestIdInterceptor()) + .addNetworkInterceptor(buildRequestIdInterceptor()) .addInterceptor(buildDeviceIdInterceptor(deviceId)) .addInterceptor(buildVersionInterceptor(versionName)) .addInterceptor(buildGZipInterceptor()) @@ -70,10 +70,12 @@ internal class DefaultOkHttpClientBuilder @Inject constructor( } private fun buildRequestIdInterceptor() = Interceptor { chain -> - val newRequest = chain.request().newBuilder() - .addHeader(REQUEST_ID_HEADER, UUID.randomUUID().toString()) - .build() - return@Interceptor chain.proceed(newRequest) + val requestId = UUID.randomUUID().toString() + + // Adding same header to both request and response to + // track the request across network logs and analytics events. + val newRequest = chain.request().newBuilder().addHeader(REQUEST_ID_HEADER, requestId).build() + return@Interceptor chain.proceed(newRequest).newBuilder().addHeader(REQUEST_ID_HEADER, requestId).build() } private fun buildAuthenticationInterceptor(authToken: String) = Interceptor { chain ->