Updated on 2026-08-14
This commit is contained in:
parent
579b3cba32
commit
f74c37a080
25 changed files with 154 additions and 40 deletions
|
|
@ -5,6 +5,7 @@ import com.tangem.datasource.local.visa.entity.PaymentAccountStatusValueDM
|
|||
import com.tangem.domain.models.StatusSource
|
||||
import com.tangem.domain.models.account.CardDisplayName
|
||||
import com.tangem.domain.models.account.PaymentAccountStatusValue
|
||||
import com.tangem.domain.models.account.TangemPayTariffPlan
|
||||
import com.tangem.domain.models.pay.*
|
||||
import com.tangem.domain.models.wallet.UserWalletId
|
||||
import com.tangem.domain.pay.TangemPayCurrencyFactory
|
||||
|
|
@ -51,6 +52,12 @@ internal class PaymentAccountStatusValueDMConverter @Inject constructor(
|
|||
adminDailyLimit = card.limit?.adminCardLimit?.amount,
|
||||
frozenState = card.frozenState.toString(),
|
||||
lastDigits = card.lastDigits,
|
||||
images = card.images.map { image ->
|
||||
PaymentAccountStatusValueDM.ImageDM(
|
||||
type = image.type.name,
|
||||
url = image.url,
|
||||
)
|
||||
},
|
||||
state = card.state.toString(),
|
||||
)
|
||||
},
|
||||
|
|
@ -91,11 +98,7 @@ internal class PaymentAccountStatusValueDMConverter @Inject constructor(
|
|||
source = StatusSource.CACHE,
|
||||
customerId = value.customerId,
|
||||
depositAddress = value.depositAddress,
|
||||
balance = PaymentAccountStatusValue.Balance(
|
||||
fiatBalance = value.fiatBalance.toDomain(),
|
||||
cryptoBalance = value.cryptoBalance.toDomain(),
|
||||
availableForWithdrawal = value.availableForWithdrawal,
|
||||
),
|
||||
balance = value.getBalance(),
|
||||
cryptoCurrency = cryptoCurrency,
|
||||
fiatRate = value.fiatRate,
|
||||
cards = value.cards.map { card ->
|
||||
|
|
@ -115,6 +118,7 @@ internal class PaymentAccountStatusValueDMConverter @Inject constructor(
|
|||
),
|
||||
frozenState = TangemPayCardFrozenState.fromString(card.frozenState),
|
||||
lastDigits = card.lastDigits,
|
||||
images = card.getImages(),
|
||||
state = TangemPayCardState.fromString(card.state),
|
||||
)
|
||||
},
|
||||
|
|
@ -160,6 +164,14 @@ internal class PaymentAccountStatusValueDMConverter @Inject constructor(
|
|||
)
|
||||
}
|
||||
|
||||
private fun PaymentAccountStatusValueDM.ActiveAccount.getBalance(): PaymentAccountStatusValue.Balance {
|
||||
return PaymentAccountStatusValue.Balance(
|
||||
fiatBalance = fiatBalance.toDomain(),
|
||||
cryptoBalance = cryptoBalance.toDomain(),
|
||||
availableForWithdrawal = availableForWithdrawal,
|
||||
)
|
||||
}
|
||||
|
||||
private fun PaymentAccountStatusValueDM.FiatBalanceDM.toDomain(): PaymentAccountStatusValue.FiatBalance {
|
||||
return PaymentAccountStatusValue.FiatBalance(
|
||||
availableBalance = availableBalance,
|
||||
|
|
@ -176,4 +188,13 @@ internal class PaymentAccountStatusValueDMConverter @Inject constructor(
|
|||
balance = balance,
|
||||
)
|
||||
}
|
||||
|
||||
private fun PaymentAccountStatusValueDM.TangemPayCard.getImages(): List<TangemPayTariffPlan.Image> {
|
||||
return images.map { image ->
|
||||
TangemPayTariffPlan.Image(
|
||||
type = TangemPayTariffPlan.Image.Type.fromString(image.type),
|
||||
url = image.url,
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -360,6 +360,7 @@ internal class DefaultPaymentAccountStatusFetcher @Inject constructor(
|
|||
productInstance.frozenState
|
||||
},
|
||||
lastDigits = cardInfo.lastFourDigits,
|
||||
images = cardInfo.images,
|
||||
state = getCardState(cardId, userWalletId),
|
||||
)
|
||||
}
|
||||
|
|
@ -509,6 +510,7 @@ internal class DefaultPaymentAccountStatusFetcher @Inject constructor(
|
|||
limit = null,
|
||||
frozenState = TangemPayCardFrozenState.Unfrozen,
|
||||
lastDigits = "",
|
||||
images = emptyList(),
|
||||
state = TangemPayCardState.Issuing,
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -92,6 +92,15 @@ internal object CustomerInfoConverter : Converter<CustomerMeResponse.Result, Cus
|
|||
cardStatus = TangemPayCard.Status.fromString(card.cardStatus),
|
||||
lastFourDigits = card.cardNumberEnd,
|
||||
isPinSet = card.isPinSet == true,
|
||||
images = card.images.orEmpty().mapNotNull(::convertCardImage),
|
||||
)
|
||||
}
|
||||
|
||||
private fun convertCardImage(image: CustomerMeResponse.Image): TangemPayTariffPlan.Image? {
|
||||
val url = image.url ?: return null
|
||||
return TangemPayTariffPlan.Image(
|
||||
type = TangemPayTariffPlan.Image.Type.fromString(image.type),
|
||||
url = url,
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -108,6 +108,7 @@ internal class DefaultPaymentAccountStatusFetcherTest {
|
|||
cardStatus = TangemPayCard.Status.ACTIVE,
|
||||
lastFourDigits = "1234",
|
||||
isPinSet = true,
|
||||
images = emptyList(),
|
||||
)
|
||||
|
||||
private fun buildCustomerInfo(
|
||||
|
|
|
|||
|
|
@ -74,6 +74,7 @@ internal class StableOrderTest {
|
|||
limit = null,
|
||||
frozenState = TangemPayCardFrozenState.Unfrozen,
|
||||
lastDigits = "0000",
|
||||
images = emptyList(),
|
||||
state = TangemPayCardState.Active,
|
||||
)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue