Updated on 2026-08-14

This commit is contained in:
Tangem 2024-09-13 18:42:30 +03:00
parent 7e3556f0df
commit 46b69881f9
3 changed files with 18 additions and 11 deletions

View file

@ -4,6 +4,7 @@ import com.tangem.datasource.api.markets.models.response.TokenMarketInfoResponse
import com.tangem.domain.markets.TokenMarketInfo
import com.tangem.domain.markets.TokenQuotes
import com.tangem.utils.converter.Converter
import java.math.BigDecimal
internal object TokenMarketInfoConverter : Converter<TokenMarketInfoResponse, TokenMarketInfo> {
@ -28,16 +29,22 @@ internal object TokenMarketInfoConverter : Converter<TokenMarketInfoResponse, To
private fun TokenMarketInfoResponse.getQuotes(): TokenQuotes {
return TokenQuotes(
currentPrice = currentPrice,
h24ChangePercent = priceChangePercentage?.day?.movePointLeft(2),
weekChangePercent = priceChangePercentage?.week?.movePointLeft(2),
monthChangePercent = priceChangePercentage?.month?.movePointLeft(2),
m3ChangePercent = priceChangePercentage?.threeMonths?.movePointLeft(2),
m6ChangePercent = priceChangePercentage?.sixMonths?.movePointLeft(2),
yearChangePercent = priceChangePercentage?.year?.movePointLeft(2),
allTimeChangePercent = priceChangePercentage?.allTime?.movePointLeft(2),
h24ChangePercent = priceChangePercentage?.getPercentageByInterval { day },
weekChangePercent = priceChangePercentage?.getPercentageByInterval { week },
monthChangePercent = priceChangePercentage?.getPercentageByInterval { month },
m3ChangePercent = priceChangePercentage?.getPercentageByInterval { threeMonths },
m6ChangePercent = priceChangePercentage?.getPercentageByInterval { sixMonths },
yearChangePercent = priceChangePercentage?.getPercentageByInterval { year },
allTimeChangePercent = priceChangePercentage?.getPercentageByInterval { allTime },
)
}
private fun TokenMarketInfoResponse.PriceChangePercentage.getPercentageByInterval(
intervalProvider: TokenMarketInfoResponse.PriceChangePercentage.() -> BigDecimal?,
): BigDecimal? {
return (intervalProvider() ?: allTime)?.movePointLeft(2)
}
@JvmName("convertNetwork")
private fun List<TokenMarketInfoResponse.Network>.convert(): List<TokenMarketInfo.Network> {
return map {