NTP-70795 | Added bank name from DB if response not present in API (#16618)
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user