TP-12345 | Mehul | bbps refresh timestamp from firebase (#11726)

Co-authored-by: sidharthbamba <sidharth.bamba@navi.com>
This commit is contained in:
Mehul Garg
2024-07-10 14:59:24 +05:30
committed by GitHub
parent af7bccf529
commit ac6801b57a
5 changed files with 32 additions and 11 deletions

View File

@@ -8,7 +8,6 @@
package com.navi.bbps.common.usecase
import com.navi.base.utils.retry
import com.navi.bbps.common.BILLER_LIST_REFRESH_TIMESTAMP
import com.navi.bbps.common.BbpsSharedPreferences
import com.navi.bbps.common.DEFAULT_RETRY_COUNT
import com.navi.bbps.common.KEY_BBPS_MY_BILLS_DB_LAST_REFRESHED_TIMESTAMP
@@ -16,6 +15,7 @@ import com.navi.bbps.common.RETRY_INTERVAL_IN_SECONDS
import com.navi.bbps.common.repository.BbpsCommonRepository
import com.navi.bbps.feature.billerlist.BillerItemResponseToEntityMapper
import com.navi.bbps.feature.billerlist.model.view.BillerItemEntity
import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper
import com.navi.common.network.models.isSuccessWithData
import javax.inject.Inject
import org.joda.time.DateTime
@@ -35,7 +35,10 @@ constructor(
)
val shouldFetchBillerList =
(DateTime.now().millis - lastFetchBillerListTimeStamp > BILLER_LIST_REFRESH_TIMESTAMP)
(DateTime.now().millis - lastFetchBillerListTimeStamp >
FirebaseRemoteConfigHelper.getLong(
FirebaseRemoteConfigHelper.NAVI_BBPS_BILLER_LIST_CACHE_MILLIS
))
if (shouldFetchBillerList) {
val billerListResponse =

View File

@@ -7,12 +7,12 @@
package com.navi.bbps.common.usecase
import com.navi.bbps.common.ALL_PHONE_SERIES_MAPPING_REFRESH_TIMESTAMP
import com.navi.bbps.common.BbpsSharedPreferences
import com.navi.bbps.common.KEY_BBPS_PHONE_SERIES_MAPPING_REFRESHED_TIMESTAMP
import com.navi.bbps.common.repository.BbpsCommonRepository
import com.navi.bbps.feature.prepaidrecharge.model.view.OperatorCircleSeriesMappingItemEntity
import com.navi.bbps.parallelMap
import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper
import com.navi.common.network.models.isSuccessWithData
import javax.inject.Inject
import org.joda.time.DateTime
@@ -25,15 +25,17 @@ constructor(
) {
suspend fun execute() {
val lastFetchBillerListTimeStamp =
val lastPhoneSeriesToOperatorCircleMappingFetchedTimeStamp =
bbpsSharedPreferences.getLong(
key = KEY_BBPS_PHONE_SERIES_MAPPING_REFRESHED_TIMESTAMP,
defValue = -1L
)
val shouldFetchPhoneSeriesMapping =
(DateTime.now().millis - lastFetchBillerListTimeStamp >
ALL_PHONE_SERIES_MAPPING_REFRESH_TIMESTAMP)
(DateTime.now().millis - lastPhoneSeriesToOperatorCircleMappingFetchedTimeStamp >
FirebaseRemoteConfigHelper.getLong(
FirebaseRemoteConfigHelper.NAVI_BBPS_PHONE_SERIES_MAPPING_CACHE_MILLIS
))
if (shouldFetchPhoneSeriesMapping) {
val mappingResponse = bbpsCommonRepository.fetchOperatorCircleMappingFromPhoneSeries()
@@ -55,6 +57,11 @@ constructor(
)
}
}
bbpsSharedPreferences.saveLong(
key = KEY_BBPS_PHONE_SERIES_MAPPING_REFRESHED_TIMESTAMP,
value = System.currentTimeMillis()
)
}
private suspend fun savedMapping(mapping: List<OperatorCircleSeriesMappingItemEntity>) {

View File

@@ -8,7 +8,6 @@
package com.navi.bbps.common.usecase
import com.navi.base.utils.retry
import com.navi.bbps.common.ALL_PREPAID_PLANS_REFRESH_TIMESTAMP
import com.navi.bbps.common.BbpsSharedPreferences
import com.navi.bbps.common.DEFAULT_RETRY_COUNT
import com.navi.bbps.common.KEY_BBPS_ALL_PREPAID_PLANS_LAST_REFRESHED_TIMESTAMP
@@ -16,6 +15,7 @@ import com.navi.bbps.common.RETRY_INTERVAL_IN_SECONDS
import com.navi.bbps.common.repository.BbpsCommonRepository
import com.navi.bbps.feature.prepaidrecharge.model.network.MapListOfPrepaidPlansResponseToEntity
import com.navi.bbps.feature.prepaidrecharge.model.view.PrepaidRechargeEntity
import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper
import com.navi.common.network.models.isSuccessWithData
import javax.inject.Inject
import org.joda.time.DateTime
@@ -28,15 +28,17 @@ constructor(
private val mapListOfPrepaidPlansResponseToEntity: MapListOfPrepaidPlansResponseToEntity
) {
suspend fun execute() {
val lastFetchBillerListTimeStamp =
val lastPrepaidPlansFetchedTimeStamp =
bbpsSharedPreferences.getLong(
key = KEY_BBPS_ALL_PREPAID_PLANS_LAST_REFRESHED_TIMESTAMP,
defValue = -1L
)
val shouldFetchAllPrepaidPlans =
(DateTime.now().millis - lastFetchBillerListTimeStamp >
ALL_PREPAID_PLANS_REFRESH_TIMESTAMP)
(DateTime.now().millis - lastPrepaidPlansFetchedTimeStamp >
FirebaseRemoteConfigHelper.getLong(
FirebaseRemoteConfigHelper.NAVI_BBPS_PREPAID_PLANS_CACHE_MILLIS
))
if (shouldFetchAllPrepaidPlans) {
val allPlansResponse =

View File

@@ -323,7 +323,13 @@ constructor(
}
private suspend fun startTransactionStatusPolling() {
// If transaction status is pending, then start transaction status polling
// If not, check if bill acknowledgment status is pending, then start bill acknowledgment
// status
if (!isTransactionStatusPending()) {
if (isBillAcknowledgmentStatusPending()) {
startBillAcknowledgmentStatusPolling()
}
return
}

View File

@@ -149,7 +149,10 @@ object FirebaseRemoteConfigHelper {
const val NAVI_BBPS_CATEGORIES_CACHE_MILLIS = "NAVI_BBPS_CATEGORIES_CACHE_MILLIS"
const val NAVI_BBPS_PREPAID_OPERATOR_CIRCLE_CACHE_KEY =
"NAVI_BBPS_PREPAID_OPERATOR_CIRCLE_CACHE_KEY"
const val NAVI_BBPS_PREPAID_PLANS_CACHE_KEY = "NAVI_BBPS_PREPAID_PLANS_CACHE_KEY"
const val NAVI_BBPS_PREPAID_PLANS_CACHE_MILLIS = "NAVI_BBPS_PREPAID_PLANS_CACHE_MILLIS"
const val NAVI_BBPS_BILLER_LIST_CACHE_MILLIS = "NAVI_BBPS_BILLER_LIST_CACHE_MILLIS"
const val NAVI_BBPS_PHONE_SERIES_MAPPING_CACHE_MILLIS =
"NAVI_BBPS_PHONE_SERIES_MAPPING_CACHE_MILLIS"
const val NAVI_LOCATION_DECIMAL_PRECISION = "NAVI_LOCATION_DECIMAL_PRECISION"
const val NAVI_BBPS_AB_TESTING_EXPERIMENTS_CACHE_KEY =
"NAVI_BBPS_AB_TESTING_EXPERIMENTS_CACHE_KEY"