TP-41350 | Caching of onboarding config in DB (#7857)
Co-authored-by: shaurya-rehan <shaurya.rehan@navi.com>
This commit is contained in:
@@ -16,7 +16,6 @@ import com.navi.pay.common.usecase.NaviPayConfigUseCase
|
||||
import com.navi.pay.common.utils.DeviceInfoProvider
|
||||
import com.navi.pay.onboarding.binding.model.network.CustomerRequest
|
||||
import com.navi.pay.onboarding.binding.model.network.CustomerResponse
|
||||
import com.navi.pay.onboarding.binding.model.network.NaviPayOnboardingConfig
|
||||
import com.navi.pay.utils.ConfigKey
|
||||
import com.navi.pay.utils.KEY_IS_FIRST_TRANSACTION_SUCCESSFUL
|
||||
import com.navi.pay.utils.NAVI_PAY_ENCRYPT_SHARED_PREF_DATA_KEYS
|
||||
@@ -35,7 +34,6 @@ class NaviPaySetupUseCase @Inject constructor(
|
||||
) {
|
||||
|
||||
private lateinit var configJob: Deferred<NaviPayDefaultConfig>
|
||||
private lateinit var onboardingConfig: Deferred<NaviPayOnboardingConfig>
|
||||
private lateinit var getCustomerJob: Deferred<RepoResult<CustomerResponse>>
|
||||
private val naviPayAnalytics: NaviPayAnalytics.SetupUseCaseEvents =
|
||||
NaviPayAnalytics.INSTANCE.SetupUseCaseEvents()
|
||||
@@ -147,7 +145,6 @@ class NaviPaySetupUseCase @Inject constructor(
|
||||
if (customerResponse?.customerStatus == NaviPayCustomerStatus.LINKED_VPA.name) {
|
||||
NaviPaySetupStatus.Success(customerStatus = NaviPayCustomerStatus.LINKED_VPA.name)
|
||||
} else {
|
||||
loadOnboardingConfig()
|
||||
NaviPaySetupStatus.Success(customerStatus = customerResponse?.customerStatus.orEmpty())
|
||||
}
|
||||
}
|
||||
@@ -156,7 +153,6 @@ class NaviPaySetupUseCase @Inject constructor(
|
||||
private suspend fun onLocalDataInvalid(): NaviPaySetupStatus {
|
||||
return withContext(Dispatchers.IO) {
|
||||
clearNaviPayData()
|
||||
loadOnboardingConfig()
|
||||
NaviPaySetupStatus.Failure(NaviPaySetupFailureReason.LocalDataInvalid)
|
||||
}
|
||||
}
|
||||
@@ -167,16 +163,4 @@ class NaviPaySetupUseCase @Inject constructor(
|
||||
nonEncryptedDataKeys = NAVI_PAY_NON_ENCRYPT_SHARED_PREF_DATA_KEYS
|
||||
)
|
||||
}
|
||||
|
||||
private suspend fun loadOnboardingConfig() {
|
||||
withContext(Dispatchers.IO) {
|
||||
onboardingConfig = async {
|
||||
naviPayConfigUseCase.execute<NaviPayOnboardingConfig>(
|
||||
ConfigKey.ONBOARDING,
|
||||
object : TypeToken<NaviPayOnboardingConfig>() {}.type
|
||||
) ?: NaviPayOnboardingConfig()
|
||||
}
|
||||
onboardingConfig.await()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -32,7 +32,7 @@ class RefreshConfigUseCase @Inject constructor(
|
||||
|
||||
if (DateTime.now().millis - configDBLastRefreshTimeStamp > CONFIG_IN_DB_REFRESH_MIN_TIMESTAMP) {
|
||||
val configAPIResponse =
|
||||
commonRepository.getConfig(commaSeparatedConfigKeys = "${ConfigKey.DEFAULT_CONFIG},${ConfigKey.NPCI_CONFIG},${ConfigKey.UPI_MAPPER}")
|
||||
commonRepository.getConfig(commaSeparatedConfigKeys = "${ConfigKey.DEFAULT_CONFIG},${ConfigKey.NPCI_CONFIG},${ConfigKey.UPI_MAPPER},${ConfigKey.ONBOARDING}")
|
||||
|
||||
if (!configAPIResponse.isSuccessWithData()) {
|
||||
return
|
||||
@@ -46,7 +46,8 @@ class RefreshConfigUseCase @Inject constructor(
|
||||
configKeys = listOf(
|
||||
ConfigKey.DEFAULT_CONFIG,
|
||||
ConfigKey.NPCI_CONFIG,
|
||||
ConfigKey.UPI_MAPPER
|
||||
ConfigKey.UPI_MAPPER,
|
||||
ConfigKey.ONBOARDING
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@@ -470,7 +470,7 @@
|
||||
<string name="autopay_of_upto_x">Autopay of up to ₹%s</string>
|
||||
<string name="for_x">For %s</string>
|
||||
<string name="autopay_setup_status">Autopay setup status</string>
|
||||
<string name="couldnt_find_this_bank">Couldn’t not find this bank.</string>
|
||||
<string name="couldnt_find_this_bank">Couldn’t find this bank.</string>
|
||||
<string name="deregister">Deregister</string>
|
||||
<string name="deregistering_from_navi_pay">Deregistering from Navi UPI</string>
|
||||
<string name="deregister_from_navi_pay_title">Deregister from Navi UPI?</string>
|
||||
|
||||
Reference in New Issue
Block a user