Updated on 2026-08-14

This commit is contained in:
Tangem 2026-06-30 11:04:50 +03:00
parent 47f1ccb854
commit 8a83664e9a
19 changed files with 218 additions and 39 deletions

View file

@ -462,7 +462,7 @@ internal class DefaultPaymentAccountStatusFetcher @Inject constructor(
return if (closingOrderId != null) {
val order = cardDetailsRepository.getOrderInfo(userWalletId, closingOrderId).getOrNull()
if (order != null && order.orderStatus.isTerminal) {
closeCardRepository.setCloseOrderId(cardId, null)
closeCardRepository.removeCloseOrderId(cardId)
TangemPayCardState.Active
} else {
TangemPayCardState.Closing
@ -470,6 +470,7 @@ internal class DefaultPaymentAccountStatusFetcher @Inject constructor(
} else if (reissueOrderId != null) {
val order = cardDetailsRepository.getOrderInfo(userWalletId, reissueOrderId).getOrNull()
if (order != null && order.orderStatus.isTerminal) {
reissueCardRepository.removeReissueOrderId(cardId)
TangemPayCardState.Active
} else {
TangemPayCardState.Reissuing

View file

@ -37,14 +37,21 @@ internal class DefaultCloseCardRepository @Inject constructor(
)
}
override suspend fun setCloseOrderId(cardId: String, orderId: String?): Either<UniversalError, Unit> =
override suspend fun storeCloseOrderId(cardId: String, orderId: String): Either<UniversalError, Unit> =
runSuspendCatching {
tangemPayCloseCardStore.setCloseOrderId(cardId, orderId)
tangemPayCloseCardStore.storeCloseOrderId(cardId, orderId)
}.fold(
onSuccess = { Unit.right() },
onFailure = { Either.Left(VisaApiError.Unspecified) },
)
override suspend fun removeCloseOrderId(cardId: String): Either<UniversalError, Unit> = runSuspendCatching {
tangemPayCloseCardStore.removeCloseOrderId(cardId)
}.fold(
onSuccess = { Unit.right() },
onFailure = { Either.Left(VisaApiError.Unspecified) },
)
override suspend fun getCloseOrderId(userWalletId: UserWalletId, cardId: String): Either<UniversalError, String?> =
either {
runSuspendCatching { tangemPayCloseCardStore.getOrderId(cardId) }.getOrNull()

View file

@ -72,6 +72,13 @@ internal class DefaultReissueCardRepository @Inject constructor(
onFailure = { Either.Left(VisaApiError.Unspecified) },
)
override suspend fun removeReissueOrderId(cardId: String): Either<UniversalError, Unit> = runSuspendCatching {
tangemPayReissueCardStore.removeReissueOrderId(cardId)
}.fold(
onSuccess = { Unit.right() },
onFailure = { Either.Left(VisaApiError.Unspecified) },
)
override suspend fun getReissueOrderId(
userWalletId: UserWalletId,
cardId: String,