From dc6eb45af5de9a79b105493f8e13fdbdacae52d3 Mon Sep 17 00:00:00 2001 From: Hitesh Kumar Date: Tue, 27 May 2025 13:28:44 +0530 Subject: [PATCH] NTP-67834 crash handling due to mm config api exception (#16334) --- .../data/remote/RemoteDataProviderImpl.kt | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/android/navi-money-manager/src/main/kotlin/com/navi/moneymanager/common/dataprovider/data/remote/RemoteDataProviderImpl.kt b/android/navi-money-manager/src/main/kotlin/com/navi/moneymanager/common/dataprovider/data/remote/RemoteDataProviderImpl.kt index 9d2463509d..6bf219b07f 100644 --- a/android/navi-money-manager/src/main/kotlin/com/navi/moneymanager/common/dataprovider/data/remote/RemoteDataProviderImpl.kt +++ b/android/navi-money-manager/src/main/kotlin/com/navi/moneymanager/common/dataprovider/data/remote/RemoteDataProviderImpl.kt @@ -8,9 +8,12 @@ package com.navi.moneymanager.common.dataprovider.data.remote import com.navi.common.checkmate.model.MetricInfo +import com.navi.common.network.ApiConstants.API_WRONG_ERROR_RESPONSE +import com.navi.common.network.models.ErrorMessage import com.navi.common.network.models.RepoResult import com.navi.common.network.models.isSuccessWithData import com.navi.common.network.retrofit.ResponseCallback +import com.navi.common.utils.log import com.navi.moneymanager.billcalendar.domain.model.data.AddBillRequestBody import com.navi.moneymanager.billcalendar.domain.model.response.BillCalendarConfigResponse import com.navi.moneymanager.billcalendar.domain.model.response.BillCalendarResponse @@ -78,10 +81,21 @@ class RemoteDataProviderImpl @Inject constructor(private val retrofitService: Re } override suspend fun fetchMMConfigResponse(screenName: String): RepoResult { - return apiResponseCallback( - response = retrofitService.fetchMMConfigResponse(), - metricInfo = MetricInfo.AppMetric(screen = screenName, isNae = { false }), - ) + val response: RepoResult = + try { + apiResponseCallback( + response = retrofitService.fetchMMConfigResponse(), + metricInfo = MetricInfo.AppMetric(screen = screenName, isNae = { false }), + ) + } catch (e: Exception) { + e.log() + RepoResult( + data = null, + error = ErrorMessage(message = e.message, statusCode = API_WRONG_ERROR_RESPONSE), + ) + } + + return response } override suspend fun fetchUserAccounts(screenName: String) =