Updated on 2026-08-14
This commit is contained in:
parent
9bfcf6376a
commit
aa996b6d22
3 changed files with 13 additions and 18 deletions
|
|
@ -101,8 +101,11 @@ internal class DefaultOnboardingRepository @Inject constructor(
|
|||
return requestHelper.performRequest(userWalletId) { authHeader -> tangemPayApi.getCustomerMe(authHeader) }
|
||||
.flatMap { response ->
|
||||
val result = response.result ?: return@flatMap VisaApiError.UnknownWithoutCode.left()
|
||||
val status = result.productInstance?.status
|
||||
val isDeactivated = status == CustomerMeResponse.ProductInstance.Status.DEACTIVATED
|
||||
val productInstances = result.productInstances
|
||||
|
||||
val isDeactivated = productInstances.isNotEmpty() &&
|
||||
productInstances.all { it.status == CustomerMeResponse.ProductInstance.Status.DEACTIVATED }
|
||||
|
||||
val isFormer = result.state.let { CustomerInfo.State.fromString(it) } == CustomerInfo.State.FORMER
|
||||
if (isDeactivated || isFormer) {
|
||||
tangemPayStorage.storeIsTangemPayDeactivated(userWalletId)
|
||||
|
|
|
|||
|
|
@ -33,11 +33,7 @@ internal object CustomerInfoConverter : Converter<CustomerMeResponse.Result, Cus
|
|||
val cards = if (value.paymentAccount == null || value.balance == null) {
|
||||
emptyList()
|
||||
} else {
|
||||
value.cards.mapIndexed { index, cardWire ->
|
||||
// Legacy single-card has no card_id on the card object → join to the single product instance.
|
||||
val cardId = cardWire.cardId ?: value.productInstances.getOrNull(index)?.cardId.orEmpty()
|
||||
buildCardInfo(cardId = cardId, card = cardWire)
|
||||
}
|
||||
value.cards.mapNotNull { it.toDomain() }
|
||||
}
|
||||
|
||||
return CustomerInfo(
|
||||
|
|
@ -87,13 +83,13 @@ internal object CustomerInfoConverter : Converter<CustomerMeResponse.Result, Cus
|
|||
)
|
||||
}
|
||||
|
||||
private fun buildCardInfo(cardId: String, card: CustomerMeResponse.Card): CardInfo {
|
||||
private fun CustomerMeResponse.Card.toDomain(): CardInfo? {
|
||||
return CardInfo(
|
||||
cardId = cardId,
|
||||
cardStatus = TangemPayCard.Status.fromString(card.cardStatus),
|
||||
lastFourDigits = card.cardNumberEnd,
|
||||
isPinSet = card.isPinSet == true,
|
||||
images = card.images.orEmpty().mapNotNull(::convertCardImage),
|
||||
cardId = id ?: return null,
|
||||
cardStatus = TangemPayCard.Status.fromString(cardStatus),
|
||||
lastFourDigits = cardNumberEnd,
|
||||
isPinSet = isPinSet == true,
|
||||
images = images.orEmpty().mapNotNull(::convertCardImage),
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue