From 205dfb4a0f5725b969b4a85b68a2d03cc536632a Mon Sep 17 00:00:00 2001 From: Ujjwal Kumar Date: Fri, 8 Sep 2023 18:55:49 +0530 Subject: [PATCH] TP-41172 | Added updates in bank table as transactional (#7829) --- .../com/navi/pay/common/usecase/RefreshBankListUseCase.kt | 3 ++- .../com/navi/pay/onboarding/account/add/dao/BankDao.kt | 7 +++++++ .../onboarding/account/add/repository/BankRepository.kt | 5 ++--- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/navi-pay/src/main/kotlin/com/navi/pay/common/usecase/RefreshBankListUseCase.kt b/navi-pay/src/main/kotlin/com/navi/pay/common/usecase/RefreshBankListUseCase.kt index 0971a12b1e..d6180ad829 100644 --- a/navi-pay/src/main/kotlin/com/navi/pay/common/usecase/RefreshBankListUseCase.kt +++ b/navi-pay/src/main/kotlin/com/navi/pay/common/usecase/RefreshBankListUseCase.kt @@ -31,11 +31,12 @@ class RefreshBankListUseCase @Inject constructor( val banks = response.data?.banks ?: listOf() val bankEntityList = banks.map { it.toBankEntity() } + bankRepository.clearBankListAndUpdateWithNewValues(bankEntityList = bankEntityList) + sharedPreferenceRepository.saveLongValue( key = KEY_BANK_LIST_DB_LAST_REFRESHED_TIMESTAMP, value = DateTime.now().millis ) - bankRepository.updateBankListValueInDB(bankEntityList = bankEntityList) bankEntityList.filter { it.popular }.forEach { imageCache.cacheImage(imageUrl = it.iconUrl) diff --git a/navi-pay/src/main/kotlin/com/navi/pay/onboarding/account/add/dao/BankDao.kt b/navi-pay/src/main/kotlin/com/navi/pay/onboarding/account/add/dao/BankDao.kt index d76f8b2beb..212d1bf1b2 100644 --- a/navi-pay/src/main/kotlin/com/navi/pay/onboarding/account/add/dao/BankDao.kt +++ b/navi-pay/src/main/kotlin/com/navi/pay/onboarding/account/add/dao/BankDao.kt @@ -5,6 +5,7 @@ import androidx.room.Dao import androidx.room.Insert import androidx.room.OnConflictStrategy import androidx.room.Query +import androidx.room.Transaction import com.navi.pay.onboarding.account.add.model.view.BankEntity import com.navi.pay.utils.NAVI_PAY_DATABASE_BANK_TABLE_NAME @@ -31,4 +32,10 @@ interface BankDao { @Query("SELECT code FROM $NAVI_PAY_DATABASE_BANK_TABLE_NAME WHERE isUpiLiteSupported = 1") suspend fun getAllBankWithUpiLiteSupport(): List + + @Transaction + suspend fun clearBankListAndUpdateWithNewValues(bankEntityList: List) { + deleteAll() + insertAll(banksEntityList = bankEntityList) + } } \ No newline at end of file diff --git a/navi-pay/src/main/kotlin/com/navi/pay/onboarding/account/add/repository/BankRepository.kt b/navi-pay/src/main/kotlin/com/navi/pay/onboarding/account/add/repository/BankRepository.kt index 310c9ccf09..5655a3a586 100644 --- a/navi-pay/src/main/kotlin/com/navi/pay/onboarding/account/add/repository/BankRepository.kt +++ b/navi-pay/src/main/kotlin/com/navi/pay/onboarding/account/add/repository/BankRepository.kt @@ -48,9 +48,8 @@ class BankRepository @Inject constructor( return apiResponseCallback(naviPayRetrofitService.addBankAccount(addAccountRequest = addAccountRequest)) } - suspend fun updateBankListValueInDB(bankEntityList: List) { - bankDao.deleteAll() - bankDao.insertAll(banksEntityList = bankEntityList) + suspend fun clearBankListAndUpdateWithNewValues(bankEntityList: List) { + bankDao.clearBankListAndUpdateWithNewValues(bankEntityList = bankEntityList) } suspend fun getBankEntityListFromBankCodes(bankCodeList: List): List {