From bc0b01ecc2a3eeecfab87c40051b47435633199c Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 29 Apr 2025 14:59:29 +0500 Subject: [PATCH] Updated on 2026-08-14 --- .../feature/referral/data/ReferralRepositoryImpl.kt | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/features/referral/data/src/main/java/com/tangem/feature/referral/data/ReferralRepositoryImpl.kt b/features/referral/data/src/main/java/com/tangem/feature/referral/data/ReferralRepositoryImpl.kt index 714e0e29dc..463325b671 100644 --- a/features/referral/data/src/main/java/com/tangem/feature/referral/data/ReferralRepositoryImpl.kt +++ b/features/referral/data/src/main/java/com/tangem/feature/referral/data/ReferralRepositoryImpl.kt @@ -29,18 +29,26 @@ internal class ReferralRepositoryImpl @Inject constructor( private val cryptoCurrencyFactory = CryptoCurrencyFactory(excludedBlockchains) + // todo this quick fix of multiple api requests, make proper cache store + private val referralStatus: MutableMap = mutableMapOf() + override suspend fun getReferralData(walletId: String): ReferralData { return withContext(coroutineDispatcher.io) { - referralConverter.convert( + val referralData = referralConverter.convert( referralApi.getReferralStatus( walletId = walletId, ), ) + + referralStatus[walletId] = referralData is ReferralData.ParticipantData + referralData } } override suspend fun isReferralParticipant(userWalletId: UserWalletId): Boolean { - return getReferralData(userWalletId.stringValue) is ReferralData.ParticipantData + val isReferralParticipant = referralStatus[userWalletId.stringValue] + + return isReferralParticipant ?: getReferralData(userWalletId.stringValue) is ReferralData.ParticipantData } override suspend fun startReferral( @@ -50,6 +58,7 @@ internal class ReferralRepositoryImpl @Inject constructor( address: String, ): ReferralData { return withContext(coroutineDispatcher.io) { + referralStatus[walletId] = true referralConverter.convert( referralApi.startReferral( startReferralBody = StartReferralBody(