Updated on 2026-08-14
This commit is contained in:
parent
2e857d5e3e
commit
45fa120411
49 changed files with 669 additions and 92 deletions
|
|
@ -5,7 +5,9 @@ import com.tangem.data.search.model.TextHintDTO
|
|||
import com.tangem.domain.models.currency.CryptoCurrency
|
||||
import com.tangem.domain.search.model.RecentSearchToken
|
||||
import com.tangem.domain.search.model.SearchTextHint
|
||||
import com.tangem.domain.search.model.TokenPriceChangeDirection
|
||||
import com.tangem.utils.converter.Converter
|
||||
import java.math.BigDecimal
|
||||
|
||||
internal class TextHintDTOToSearchTextHintConverter : Converter<TextHintDTO, SearchTextHint> {
|
||||
override fun convert(value: TextHintDTO): SearchTextHint {
|
||||
|
|
@ -24,6 +26,15 @@ internal class RecentTokenDTOToRecentSearchTokenConverter : Converter<RecentToke
|
|||
symbol = value.symbol,
|
||||
imageUrl = value.imageUrl,
|
||||
timestamp = value.timestamp,
|
||||
appCurrencyCode = value.appCurrencyCode,
|
||||
appCurrencySymbol = value.appCurrencySymbol,
|
||||
price = value.pricePlain.toBigDecimalOrNull() ?: BigDecimal.ZERO,
|
||||
priceChangePercent = value.priceChangePercent,
|
||||
priceChangeDirection = value.priceChangeDirection.toTokenPriceChangeDirection(),
|
||||
marketCap = value.marketCap,
|
||||
ratingPosition = value.ratingPosition,
|
||||
isUnder100kMarketCap = value.isUnder100kMarketCap,
|
||||
stakingRateText = value.stakingRateText,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -36,6 +47,20 @@ internal class RecentSearchTokenToRecentTokenDTOConverter : Converter<RecentSear
|
|||
symbol = value.symbol,
|
||||
imageUrl = value.imageUrl,
|
||||
timestamp = value.timestamp,
|
||||
pricePlain = value.price.toPlainString(),
|
||||
appCurrencyCode = value.appCurrencyCode,
|
||||
appCurrencySymbol = value.appCurrencySymbol,
|
||||
priceChangePercent = value.priceChangePercent,
|
||||
priceChangeDirection = value.priceChangeDirection.name,
|
||||
marketCap = value.marketCap,
|
||||
ratingPosition = value.ratingPosition,
|
||||
isUnder100kMarketCap = value.isUnder100kMarketCap,
|
||||
stakingRateText = value.stakingRateText,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private fun String.toTokenPriceChangeDirection(): TokenPriceChangeDirection {
|
||||
return runCatching { TokenPriceChangeDirection.valueOf(this) }
|
||||
.getOrDefault(TokenPriceChangeDirection.NEUTRAL)
|
||||
}
|
||||
|
|
@ -14,6 +14,9 @@ internal data class TextHintDTO(
|
|||
val timestamp: Long,
|
||||
)
|
||||
|
||||
/**
|
||||
* @param appCurrencyCode currency code (e.g. "USD") the [pricePlain] was quoted in
|
||||
*/
|
||||
@JsonClass(generateAdapter = true)
|
||||
internal data class RecentTokenDTO(
|
||||
val id: String,
|
||||
|
|
@ -21,4 +24,13 @@ internal data class RecentTokenDTO(
|
|||
val symbol: String,
|
||||
val imageUrl: String?,
|
||||
val timestamp: Long,
|
||||
val pricePlain: String,
|
||||
val appCurrencyCode: String,
|
||||
val appCurrencySymbol: String,
|
||||
val priceChangePercent: String,
|
||||
val priceChangeDirection: String,
|
||||
val marketCap: String?,
|
||||
val ratingPosition: String?,
|
||||
val isUnder100kMarketCap: Boolean,
|
||||
val stakingRateText: String?,
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue