NTP-70795 | Added bank name from DB if response not present in API (#16618)

This commit is contained in:
Ujjwal Kumar
2025-06-17 16:35:21 +05:30
committed by GitHub
parent c687ff94a1
commit a24a4f2cc6
2 changed files with 16 additions and 1 deletions

View File

@@ -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

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.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<ValidateVpaResponse> {
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(