Updated on 2026-08-14

This commit is contained in:
Tangem 2025-04-16 19:53:59 +05:00
parent 464fb0db73
commit 840687b699
5 changed files with 31 additions and 12 deletions

View file

@ -63,11 +63,17 @@ internal class DefaultOnrampTransactionRepository(
}.map(transactionConverter::convert)
}
override suspend fun updateTransactionStatus(externalTxId: String, status: OnrampStatus.Status) =
withContext(dispatchers.io) {
val updatedTx = getTransactionById(externalTxId)?.copy(status = status) ?: return@withContext
storeTransaction(updatedTx)
}
override suspend fun updateTransactionStatus(
externalTxId: String,
externalTxUrl: String,
status: OnrampStatus.Status,
) = withContext(dispatchers.io) {
val updatedTx = getTransactionById(externalTxId)?.copy(
externalTxUrl = externalTxUrl,
status = status,
) ?: return@withContext
storeTransaction(updatedTx)
}
override suspend fun removeTransaction(externalTxId: String) {
withContext(dispatchers.io) {

View file

@ -10,7 +10,12 @@ class OnrampUpdateTransactionStatusUseCase(
private val errorResolver: OnrampErrorResolver,
) {
suspend operator fun invoke(externalTxId: String, status: OnrampStatus.Status) = Either.catch {
onrampTransactionRepository.updateTransactionStatus(externalTxId = externalTxId, status = status)
}.mapLeft(errorResolver::resolve)
suspend operator fun invoke(externalTxId: String, externalTxUrl: String, status: OnrampStatus.Status) =
Either.catch {
onrampTransactionRepository.updateTransactionStatus(
externalTxId = externalTxId,
externalTxUrl = externalTxUrl,
status = status,
)
}.mapLeft(errorResolver::resolve)
}

View file

@ -14,7 +14,7 @@ interface OnrampTransactionRepository {
fun getTransactions(userWalletId: UserWalletId, cryptoCurrencyId: CryptoCurrency.ID): Flow<List<OnrampTransaction>>
suspend fun updateTransactionStatus(externalTxId: String, status: OnrampStatus.Status)
suspend fun updateTransactionStatus(externalTxId: String, externalTxUrl: String, status: OnrampStatus.Status)
suspend fun removeTransaction(externalTxId: String)
}

View file

@ -15,9 +15,9 @@ import com.tangem.domain.tokens.model.CryptoCurrency
import com.tangem.domain.tokens.model.CryptoCurrencyStatus
import com.tangem.domain.tokens.model.analytics.TokenOnrampAnalyticsEvent
import com.tangem.domain.wallets.models.UserWalletId
import com.tangem.feature.tokendetails.presentation.tokendetails.model.TokenDetailsClickIntents
import com.tangem.feature.tokendetails.presentation.tokendetails.state.TokenDetailsState
import com.tangem.feature.tokendetails.presentation.tokendetails.state.factory.TokenDetailsOnrampTransactionStateConverter
import com.tangem.feature.tokendetails.presentation.tokendetails.model.TokenDetailsClickIntents
import com.tangem.utils.Provider
import dagger.assisted.Assisted
import dagger.assisted.AssistedFactory
@ -116,7 +116,11 @@ internal class OnrampStatusFactory @AssistedInject constructor(
fiatCurrency = onrampTx.fromCurrencyCode,
),
)
onrampUpdateTransactionStatusUseCase(externalTxId = externalTxId, statusModel.status)
onrampUpdateTransactionStatusUseCase(
externalTxId = externalTxId,
externalTxUrl = statusModel.externalTxUrl.orEmpty(),
status = statusModel.status,
)
}
}

View file

@ -72,7 +72,11 @@ internal class OnrampStatusFactory @Inject constructor(
fiatCurrency = onrampTx.fromCurrencyCode,
),
)
onrampUpdateTransactionStatusUseCase(externalTxId = externalTxId, statusModel.status)
onrampUpdateTransactionStatusUseCase(
externalTxId = externalTxId,
externalTxUrl = statusModel.externalTxUrl.orEmpty(),
status = statusModel.status,
)
}
},
)