From 831a78e3dc36fff9e29b6156bcbb91d718b920e4 Mon Sep 17 00:00:00 2001 From: Sohan Reddy Atukula Date: Wed, 28 Aug 2024 19:46:23 +0530 Subject: [PATCH] NTP-2564 | Sohan Reddy | Dynamic X-Target handling for rewards apis. (#12246) Co-authored-by: Kishan Kumar --- .../repo/repository/CoinHistoryScreenRepo.kt | 13 ++++++---- .../ScratchCardHistoryScreenRepo.kt | 6 ++++- .../FirebaseRemoteConfigHelper.kt | 9 +++++++ .../main/res/xml/default_remote_config.xml | 24 +++++++++++++++++++ .../rr/scratchcard/repo/ScratchCardRepo.kt | 17 +++++++++---- 5 files changed, 60 insertions(+), 9 deletions(-) diff --git a/android/navi-coin/src/main/java/com/navi/coin/repo/repository/CoinHistoryScreenRepo.kt b/android/navi-coin/src/main/java/com/navi/coin/repo/repository/CoinHistoryScreenRepo.kt index 8b7600ce8c..fdac62884f 100644 --- a/android/navi-coin/src/main/java/com/navi/coin/repo/repository/CoinHistoryScreenRepo.kt +++ b/android/navi-coin/src/main/java/com/navi/coin/repo/repository/CoinHistoryScreenRepo.kt @@ -11,6 +11,9 @@ import com.navi.coin.models.model.TransactionHistoryResponse import com.navi.coin.network.RetrofitService import com.navi.coin.utils.constant.Constants.SCREENS.TRANSACTION_HISTORY_CASH_SCREEN_NAME import com.navi.coin.utils.constant.Constants.SCREENS.TRANSACTION_HISTORY_COINS_SCREEN_NAME +import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper +import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper.REWARDS_LEDGER_HISTORY_HEADER +import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper.SHAREABLE_DETAILS_HEADER import com.navi.common.forge.model.ScreenDefinition import com.navi.common.model.ModuleNameV2 import com.navi.common.network.models.RepoResult @@ -74,9 +77,11 @@ constructor( pageNo: Int, pageSize: Int ): RepoResult { + var target = FirebaseRemoteConfigHelper.getString(REWARDS_LEDGER_HISTORY_HEADER) + if (target.isEmpty()) target = ModuleNameV2.REWARDS.name return responseHandler.handleResponse( retrofitService.getRewardsTransactions( - target = ModuleNameV2.REWARDS.name, + target = target, pageNumber = pageNo.toString(), pageSize = pageSize.toString() ) @@ -84,8 +89,8 @@ constructor( } suspend fun fetchUserData(): RepoResult { - return responseHandler.handleResponse( - retrofitService.getUserData(target = ModuleNameV2.REWARDS.name) - ) + var target = FirebaseRemoteConfigHelper.getString(SHAREABLE_DETAILS_HEADER) + if (target.isEmpty()) target = ModuleNameV2.REWARDS.name + return responseHandler.handleResponse(retrofitService.getUserData(target = target)) } } diff --git a/android/navi-coin/src/main/java/com/navi/coin/repo/repository/ScratchCardHistoryScreenRepo.kt b/android/navi-coin/src/main/java/com/navi/coin/repo/repository/ScratchCardHistoryScreenRepo.kt index b3877342c4..50643d2555 100644 --- a/android/navi-coin/src/main/java/com/navi/coin/repo/repository/ScratchCardHistoryScreenRepo.kt +++ b/android/navi-coin/src/main/java/com/navi/coin/repo/repository/ScratchCardHistoryScreenRepo.kt @@ -10,6 +10,8 @@ package com.navi.coin.repo.repository import com.navi.coin.models.model.ScratchCardHistoryResponse import com.navi.coin.network.RetrofitService import com.navi.coin.utils.constant.Constants.SCREENS.REWARDS_SCRATCH_CARD_SUMMARY_SCREEN_NAME +import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper +import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper.SCRATCH_CARD_HISTORY_HEADER import com.navi.common.forge.model.ScreenDefinition import com.navi.common.model.ModuleNameV2 import com.navi.common.network.models.RepoResult @@ -44,9 +46,11 @@ constructor( pageNo: Int, pageSize: Int ): RepoResult { + var target = FirebaseRemoteConfigHelper.getString(SCRATCH_CARD_HISTORY_HEADER) + if (target.isEmpty()) target = ModuleNameV2.REWARDS.name return responseHandler.handleResponse( retrofitService.fetchScratchCardHistoryList( - target = ModuleNameV2.REWARDS.name, + target = target, pageNumber = pageNo.toString(), pageSize = pageSize.toString() ) diff --git a/android/navi-common/src/main/java/com/navi/common/firebaseremoteconfig/FirebaseRemoteConfigHelper.kt b/android/navi-common/src/main/java/com/navi/common/firebaseremoteconfig/FirebaseRemoteConfigHelper.kt index 1c479d6cbe..44bba3bd65 100644 --- a/android/navi-common/src/main/java/com/navi/common/firebaseremoteconfig/FirebaseRemoteConfigHelper.kt +++ b/android/navi-common/src/main/java/com/navi/common/firebaseremoteconfig/FirebaseRemoteConfigHelper.kt @@ -207,6 +207,15 @@ object FirebaseRemoteConfigHelper { const val RETRY_INTERCEPTOR_ENABLED = "RETRY_INTERCEPTOR_ENABLED" + // Rewards X-target migration configs + // TODO will remove these in future + const val SHAREABLE_DETAILS_HEADER = "SHAREABLE_DETAILS_HEADER" + const val REWARD_INFO_HEADER = "REWARD_INFO_HEADER" + const val REWARD_INFO_OBJECTIVE_HEADER = "REWARD_INFO_OBJECTIVE_HEADER" + const val REWARDS_LEDGER_HISTORY_HEADER = "REWARDS_LEDGER_HISTORY_HEADER" + const val SCRATCH_CARD_HISTORY_HEADER = "SCRATCH_CARD_HISTORY_HEADER" + const val SCRATCH_CARD_SCRATCHING_HEADER = "SCRATCH_CARD_SCRATCHING_HEADER" + private fun getFirebaseRemoteConfig(): FirebaseRemoteConfig { val remoteConfig = Firebase.remoteConfig val configSettings = remoteConfigSettings { diff --git a/android/navi-common/src/main/res/xml/default_remote_config.xml b/android/navi-common/src/main/res/xml/default_remote_config.xml index dff2dc83e0..b52d041ea8 100644 --- a/android/navi-common/src/main/res/xml/default_remote_config.xml +++ b/android/navi-common/src/main/res/xml/default_remote_config.xml @@ -574,4 +574,28 @@ NAVI_PAY_BANK_LOGOS_V2_URL https://public-assets.prod.navi-pay.in/bank-logos-v2/bankIdentifier.png + + SHAREABLE_DETAILS_HEADER + REWARDS + + + REWARD_INFO_HEADER + REWARDS + + + REWARD_INFO_OBJECTIVE_HEADER + REWARDS + + + REWARDS_LEDGER_HISTORY_HEADER + REWARDS + + + SCRATCH_CARD_HISTORY_HEADER + REWARDS + + + SCRATCH_CARD_SCRATCHING_HEADER + REWARDS + \ No newline at end of file diff --git a/android/navi-rr/src/main/java/com/navi/rr/scratchcard/repo/ScratchCardRepo.kt b/android/navi-rr/src/main/java/com/navi/rr/scratchcard/repo/ScratchCardRepo.kt index d11b24068c..0d8e22de98 100644 --- a/android/navi-rr/src/main/java/com/navi/rr/scratchcard/repo/ScratchCardRepo.kt +++ b/android/navi-rr/src/main/java/com/navi/rr/scratchcard/repo/ScratchCardRepo.kt @@ -7,8 +7,11 @@ package com.navi.rr.scratchcard.repo +import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper +import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper.REWARD_INFO_HEADER +import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper.REWARD_INFO_OBJECTIVE_HEADER +import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper.SCRATCH_CARD_SCRATCHING_HEADER import com.navi.common.forge.model.ScreenDefinition -import com.navi.common.model.ModuleName import com.navi.common.model.ModuleNameV2 import com.navi.common.network.models.RepoResult import com.navi.common.utils.Constants.GZIP @@ -30,23 +33,29 @@ constructor( product: String, objective: String ): RepoResult { + var target = FirebaseRemoteConfigHelper.getString(REWARD_INFO_OBJECTIVE_HEADER) + if (target.isEmpty()) target = ModuleNameV2.REWARDS.name return responseHandler.handleResponse( retrofitService.getNudgeRewardObjective( product = product, objective = objective, - target = ModuleName.REWARDS.name + target = target ) ) } suspend fun getNudgeRewardInfo(eventId: String): RepoResult { + var target = FirebaseRemoteConfigHelper.getString(REWARD_INFO_HEADER) + if (target.isEmpty()) target = ModuleNameV2.REWARDS.name return responseHandler.handleResponse( - retrofitService.getNudgeRewardInfo(eventId = eventId, target = ModuleName.REWARDS.name) + retrofitService.getNudgeRewardInfo(eventId = eventId, target = target) ) } suspend fun putScratchCompleted(requestId: String) { - retrofitService.putScratchCompleted(target = ModuleName.REWARDS.name, requestId) + var target = FirebaseRemoteConfigHelper.getString(SCRATCH_CARD_SCRATCHING_HEADER) + if (target.isEmpty()) target = ModuleNameV2.REWARDS.name + retrofitService.putScratchCompleted(target = target, requestId) } suspend fun fetchScratchCardTemplate(): RepoResult {