From 2806bd7c277e25ce4fb9c684b64d6861bc014eb7 Mon Sep 17 00:00:00 2001 From: vedant aggarwal Date: Wed, 7 May 2025 17:50:05 +0530 Subject: [PATCH] NTP-60662 | Vedant Aggarwal | Existing customer check updated (#16081) --- .../navi/pay/common/usecase/ValidateVpaUseCase.kt | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) 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 c3c49b6239..471457f9c8 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.common.repository.AccountsRepository 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 @@ -46,6 +47,7 @@ constructor( private val naviPaySessionHelper: NaviPaySessionHelper, private val naviPayPspManager: NaviPayPspManager, private val naviPayCustomerStatusHandler: NaviPayCustomerStatusHandler, + private val accountsRepository: AccountsRepository, @NaviPayGsonBuilder private val gson: Gson, ) { val naviPayAnalytics = NaviPayAnalytics.INSTANCE.NaviPayValidateVpaUseCase() @@ -222,17 +224,19 @@ constructor( return apiResponse } + // returns true if customer has done binding or has at least one account in db private suspend fun isCustomerOnboardedOnAnySupportedPsp(screenName: String): Boolean { + val accounts = accountsRepository.getAllAccounts() + if (accounts.isNotEmpty()) { + return true + } val supportedPspTypes = naviPayPspManager.getSupportedPspList( naviPayFlowType = NaviPayFlowType.VALIDATE_VPA, screenName = screenName, ) - val customerOnboardingData = naviPayCustomerStatusHandler.getAllCustomerOnboardingData() - return customerOnboardingData.any { customerOnboardingEntity -> - customerOnboardingEntity.pspType in supportedPspTypes && - customerOnboardingEntity.merchantCustomerId.isNotEmpty() - } + val customerStatusMap = naviPayCustomerStatusHandler.getCustomerStatusMap() + return supportedPspTypes.any { psp -> customerStatusMap[psp]?.isBound == true } } private fun getVpaKeyParam(request: T): String {