NTP-60662 | Vedant Aggarwal | Existing customer check updated (#16081)

This commit is contained in:
vedant aggarwal
2025-05-07 17:50:05 +05:30
committed by GitHub
parent eddd3e2053
commit 2806bd7c27

View File

@@ -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 <T> getVpaKeyParam(request: T): String {