From a24a4f2cc6a263820b3aa4bdbc3258cd29a66119 Mon Sep 17 00:00:00 2001 From: Ujjwal Kumar Date: Tue, 17 Jun 2025 16:35:21 +0530 Subject: [PATCH] NTP-70795 | Added bank name from DB if response not present in API (#16618) --- android/navi-pay/build.gradle | 1 + .../pay/common/usecase/ValidateVpaUseCase.kt | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/android/navi-pay/build.gradle b/android/navi-pay/build.gradle index 26acba3f06..f5e8ce9797 100644 --- a/android/navi-pay/build.gradle +++ b/android/navi-pay/build.gradle @@ -120,6 +120,7 @@ dependencies { prodImplementation project(path: ':npci-upi-cl', configuration: 'prod') androidTestImplementation libs.androidx.test.junit + androidTestImplementation libs.androidx.test.rules testImplementation libs.dagger.hiltAndroidTesting testImplementation libs.junit diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/common/usecase/ValidateVpaUseCase.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/common/usecase/ValidateVpaUseCase.kt index 0a20e0d2b0..6a9ab371e2 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/common/usecase/ValidateVpaUseCase.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/common/usecase/ValidateVpaUseCase.kt @@ -26,6 +26,7 @@ import com.navi.pay.common.validatevpa.model.view.ValidateVpaEntity import com.navi.pay.management.common.utils.NaviPayPspManager import com.navi.pay.management.paytocontacts.model.network.PayToContactRequest import com.navi.pay.network.di.NaviPayGsonBuilder +import com.navi.pay.onboarding.account.add.repository.BankRepository import com.navi.pay.onboarding.binding.model.view.NaviPayCustomerOnboardingEntity import com.navi.pay.utils.DEFAULT_RETRY_COUNT import com.navi.pay.utils.RETRY_INTERVAL_IN_SECONDS @@ -47,6 +48,7 @@ constructor( private val naviPayPspManager: NaviPayPspManager, private val naviPayCustomerStatusHandler: NaviPayCustomerStatusHandler, @NaviPayGsonBuilder private val gson: Gson, + private val bankRepository: BankRepository, ) { val naviPayAnalytics = NaviPayAnalytics.INSTANCE.NaviPayValidateVpaUseCase() @@ -173,7 +175,7 @@ constructor( customerOnboardingEntity: NaviPayCustomerOnboardingEntity, ): RepoResult { val vpaKeyParam = getVpaKeyParam(request = request) - val apiResponse = + var apiResponse = when (request) { is ValidateVpaRequest -> { retry( @@ -225,6 +227,18 @@ constructor( } } + // Try updating bank name if it is not present in the response + if (apiResponse.isSuccessWithData() && (apiResponse.data?.bankName.isNullOrEmpty())) { + val bankUiModel = + bankRepository.getBankUiModelFromBankCode( + bankCode = apiResponse.data?.bankCode ?: "" + ) + bankUiModel?.let { bankModel -> + apiResponse = + apiResponse.copy(data = apiResponse.data?.copy(bankName = bankModel.name)) + } + } + // Not caching response for PayToContact request because of NPCI compliance if (apiResponse.isSuccessWithData() && request is ValidateVpaRequest) { commonRepository.insertValidateVpaEntity(