diff --git a/navi-alfred/src/main/java/com/navi/alfred/network/AlfredApiLogsProvider.kt b/navi-alfred/src/main/java/com/navi/alfred/network/AlfredApiLogsProvider.kt index 46a9ebf..ce6d116 100644 --- a/navi-alfred/src/main/java/com/navi/alfred/network/AlfredApiLogsProvider.kt +++ b/navi-alfred/src/main/java/com/navi/alfred/network/AlfredApiLogsProvider.kt @@ -11,5 +11,5 @@ import okhttp3.Request import okhttp3.Response interface AlfredApiLogsProvider { - fun sendApiLog(request: Request, response: Response) + fun sendApiLog(request: Request, response: Response, exception: Exception? = null) } diff --git a/navi-alfred/src/main/java/com/navi/alfred/network/AlfredFailureRetrofitProvider.kt b/navi-alfred/src/main/java/com/navi/alfred/network/AlfredFailureRetrofitProvider.kt index 285f757..9b6598f 100644 --- a/navi-alfred/src/main/java/com/navi/alfred/network/AlfredFailureRetrofitProvider.kt +++ b/navi-alfred/src/main/java/com/navi/alfred/network/AlfredFailureRetrofitProvider.kt @@ -8,17 +8,13 @@ package com.navi.alfred.network import android.content.Context -import android.content.Intent -import android.util.Log import com.chuckerteam.chucker.api.ChuckerCollector import com.chuckerteam.chucker.api.ChuckerInterceptor import com.google.gson.GsonBuilder import com.navi.alfred.AlfredManager import com.navi.alfred.BuildConfig import com.navi.alfred.deserializer.FailureDataDeserializer -import com.navi.alfred.model.ErrorMessage import com.navi.alfred.model.FailureRequest -import com.navi.alfred.network.model.RequestInfo import com.navi.alfred.utils.AlfredConstants import com.navi.alfred.utils.ApiConstants import com.navi.alfred.utils.handleException @@ -40,13 +36,14 @@ object AlfredFailureRetrofitProvider { private val networkInterceptor: Interceptor get() = Interceptor { chain -> val request = chain.request() + var exception: Exception? = null val response = if (isNetworkAvailable()) { try { chain.proceed(request).newBuilder().build() } catch (e: Exception) { + exception = e val errorMessage = handleException(e) - setNetworkFailureBroadcast(e, errorMessage, request) // A mocked response in case of n/w exception Response.Builder() .request(request) @@ -66,7 +63,7 @@ object AlfredFailureRetrofitProvider { .build() } AlfredApiLogsManager.getAlfredApiLogsProvider() - ?.sendApiLog(request = request, response = response) + ?.sendApiLog(request = request, response = response, exception = exception) response } @@ -118,25 +115,6 @@ object AlfredFailureRetrofitProvider { .build() } - private fun setNetworkFailureBroadcast( - e: Exception, - errorMessage: ErrorMessage, - request: Request - ) { - Log.d("Alfred", "AlfredRetrofitProvider setNetworkFailureBroadcast - sending Broadcast") - val intent = Intent(AlfredConstants.BROADCAST_ACTION_TYPE) - val requestInfo = - RequestInfo( - request.url.toString(), - request.headers[AlfredConstants.HEADER_X_TARGET], - request.headers[AlfredConstants.HEADER_APP_REQUEST_ID] - ) - intent.putExtra(AlfredConstants.BROADCAST_EXCEPTION, e) - intent.putExtra(AlfredConstants.BROADCAST_ERROR_MESSAGE, errorMessage) - intent.putExtra(AlfredConstants.BROADCAST_REQUEST, requestInfo) - AlfredManager.applicationContext.sendBroadcast(intent) - } - fun getApiService(): AlfredFailureRetrofitService { return apiService } diff --git a/navi-alfred/src/main/java/com/navi/alfred/network/AlfredResourceManagerInterceptor.kt b/navi-alfred/src/main/java/com/navi/alfred/network/AlfredResourceManagerInterceptor.kt index 4d330f9..6c2146d 100644 --- a/navi-alfred/src/main/java/com/navi/alfred/network/AlfredResourceManagerInterceptor.kt +++ b/navi-alfred/src/main/java/com/navi/alfred/network/AlfredResourceManagerInterceptor.kt @@ -7,17 +7,7 @@ package com.navi.alfred.network -import android.content.Intent -import android.util.Log import com.navi.alfred.AlfredManager -import com.navi.alfred.model.ErrorMessage -import com.navi.alfred.network.model.RequestInfo -import com.navi.alfred.utils.AlfredConstants.BROADCAST_ACTION_TYPE -import com.navi.alfred.utils.AlfredConstants.BROADCAST_ERROR_MESSAGE -import com.navi.alfred.utils.AlfredConstants.BROADCAST_EXCEPTION -import com.navi.alfred.utils.AlfredConstants.BROADCAST_REQUEST -import com.navi.alfred.utils.AlfredConstants.HEADER_APP_REQUEST_ID -import com.navi.alfred.utils.AlfredConstants.HEADER_X_TARGET import com.navi.alfred.utils.handleException import com.navi.alfred.utils.orZero import okhttp3.* @@ -34,8 +24,6 @@ internal class AlfredResourceManagerInterceptor { chain.proceed(request).newBuilder().build() } catch (e: Exception) { val errorMessage = handleException(e) - // send failure broadcast if the request is critical - setNetworkFailureBroadcast(e, errorMessage, request) // A mocked response in case of n/w exception Response.Builder() .request(request) @@ -54,27 +42,6 @@ internal class AlfredResourceManagerInterceptor { .message(AlfredManager.criticalJourneyResponseMessage.orEmpty()) .build() } - AlfredApiLogsManager.getAlfredApiLogsProvider() - ?.sendApiLog(request = request, response = response) response } - - private fun setNetworkFailureBroadcast( - e: Exception, - errorMessage: ErrorMessage, - request: Request - ) { - Log.d("Alfred", "AlfredResourceManagerInterceptor: setNetworkFailureBroadcast") - val intent = Intent(BROADCAST_ACTION_TYPE) - val requestInfo = - RequestInfo( - request.url.toString(), - request.headers[HEADER_X_TARGET], - request.headers[HEADER_APP_REQUEST_ID] - ) - intent.putExtra(BROADCAST_EXCEPTION, e) - intent.putExtra(BROADCAST_ERROR_MESSAGE, errorMessage) - intent.putExtra(BROADCAST_REQUEST, requestInfo) - AlfredManager.applicationContext.sendBroadcast(intent) - } } diff --git a/navi-alfred/src/main/java/com/navi/alfred/network/AlfredRetrofitProvider.kt b/navi-alfred/src/main/java/com/navi/alfred/network/AlfredRetrofitProvider.kt index df92cca..551ab26 100644 --- a/navi-alfred/src/main/java/com/navi/alfred/network/AlfredRetrofitProvider.kt +++ b/navi-alfred/src/main/java/com/navi/alfred/network/AlfredRetrofitProvider.kt @@ -8,8 +8,6 @@ package com.navi.alfred.network import android.content.Context -import android.content.Intent -import android.util.Log import com.chuckerteam.chucker.api.ChuckerCollector import com.chuckerteam.chucker.api.ChuckerInterceptor import com.google.gson.GsonBuilder @@ -18,17 +16,9 @@ import com.navi.alfred.BuildConfig import com.navi.alfred.deserializer.AnalyticsDataDeserializer import com.navi.alfred.deserializer.MetricsDataDeserializer import com.navi.alfred.deserializer.SessionDataDeserializer -import com.navi.alfred.model.ErrorMessage import com.navi.alfred.model.EventMetricRequest import com.navi.alfred.model.SessionRequest -import com.navi.alfred.network.model.RequestInfo import com.navi.alfred.utils.AlfredConstants -import com.navi.alfred.utils.AlfredConstants.BROADCAST_ACTION_TYPE -import com.navi.alfred.utils.AlfredConstants.BROADCAST_ERROR_MESSAGE -import com.navi.alfred.utils.AlfredConstants.BROADCAST_EXCEPTION -import com.navi.alfred.utils.AlfredConstants.BROADCAST_REQUEST -import com.navi.alfred.utils.AlfredConstants.HEADER_APP_REQUEST_ID -import com.navi.alfred.utils.AlfredConstants.HEADER_X_TARGET import com.navi.alfred.utils.ApiConstants import com.navi.alfred.utils.handleException import com.navi.alfred.utils.isNetworkAvailable @@ -50,13 +40,14 @@ object AlfredRetrofitProvider { private val networkInterceptor: Interceptor get() = Interceptor { chain -> val request = chain.request() + var exception: Exception? = null val response = if (isNetworkAvailable()) { try { chain.proceed(request).newBuilder().build() } catch (e: Exception) { + exception = e val errorMessage = handleException(e) - setNetworkFailureBroadcast(e, errorMessage, request) // A mocked response in case of n/w exception Response.Builder() .request(request) @@ -76,7 +67,7 @@ object AlfredRetrofitProvider { .build() } AlfredApiLogsManager.getAlfredApiLogsProvider() - ?.sendApiLog(request = request, response = response) + ?.sendApiLog(request = request, response = response, exception = exception) response } @@ -137,25 +128,6 @@ object AlfredRetrofitProvider { return apiService } - private fun setNetworkFailureBroadcast( - e: Exception, - errorMessage: ErrorMessage, - request: Request - ) { - Log.d("Alfred", "AlfredRetrofitProvider setNetworkFailureBroadcast - sending Broadcast") - val intent = Intent(BROADCAST_ACTION_TYPE) - val requestInfo = - RequestInfo( - request.url.toString(), - request.headers[HEADER_X_TARGET], - request.headers[HEADER_APP_REQUEST_ID] - ) - intent.putExtra(BROADCAST_EXCEPTION, e) - intent.putExtra(BROADCAST_ERROR_MESSAGE, errorMessage) - intent.putExtra(BROADCAST_REQUEST, requestInfo) - AlfredManager.applicationContext.sendBroadcast(intent) - } - private fun loggingInterceptor() = HttpLoggingInterceptor().apply { setLevel(HttpLoggingInterceptor.Level.BODY) } }