diff --git a/src/main/kotlin/su/redume/core/network/api/FiatCurrencyServer.kt b/src/main/kotlin/su/redume/core/network/api/FiatCurrencyServer.kt new file mode 100644 index 0000000..df31c5e --- /dev/null +++ b/src/main/kotlin/su/redume/core/network/api/FiatCurrencyServer.kt @@ -0,0 +1,7 @@ +package su.redume.core.network.api + +import su.redume.core.network.model.CurrencyDto + +interface FiatCurrencyServer { + suspend fun currency(): List +} \ No newline at end of file diff --git a/src/main/kotlin/su/redume/core/network/impl/FiatCurrencyServerImpl.kt b/src/main/kotlin/su/redume/core/network/impl/FiatCurrencyServerImpl.kt new file mode 100644 index 0000000..0b9a167 --- /dev/null +++ b/src/main/kotlin/su/redume/core/network/impl/FiatCurrencyServerImpl.kt @@ -0,0 +1,31 @@ +package su.redume.core.network.impl + +import io.ktor.client.* +import io.ktor.client.call.* +import io.ktor.serialization.kotlinx.json.json +import kotlinx.serialization.json.Json +import io.ktor.client.plugins.defaultRequest +import io.ktor.http.* +import io.ktor.client.plugins.contentnegotiation.ContentNegotiation +import io.ktor.client.request.* +import javax.inject.Inject +import su.redume.core.network.api.FiatCurrencyServer +import su.redume.core.network.model.CurrencyDto + +class FiatCurrencyServerImpl @Inject constructor() : FiatCurrencyServer { + private val httpClient = HttpClient { + install(ContentNegotiation) { + json( + Json { + ignoreUnknownKeys = true + } + ) + } + defaultRequest { + contentType(ContentType.Application.Json) + url("https://duckduckgo.com/js/spice/currency/1/") + } + } + + override suspend fun currency(value: String, pair: String): List = httpClient.get("$value/$pair").body() +} \ No newline at end of file