30 lines
990 B
Kotlin
30 lines
990 B
Kotlin
package com.example.demo.rest
|
|
|
|
import com.example.demo.domain.RateModel
|
|
import com.fasterxml.jackson.databind.JsonNode
|
|
import org.springframework.web.client.RestTemplate
|
|
import org.springframework.web.client.getForObject
|
|
|
|
object RestWebClient {
|
|
private val restTemplate = RestTemplate()
|
|
fun getRequest(requestUrl: String): Any? {
|
|
val response = restTemplate.getForObject<Any>(requestUrl)
|
|
return response
|
|
}
|
|
|
|
fun getRequestForModel(requestUrl: String): JsonNode? {
|
|
val response = restTemplate.getForObject<JsonNode>(requestUrl)
|
|
return response
|
|
}
|
|
|
|
fun getRates(requestUrl: String): List<RateModel> {
|
|
val response = getRequestForModel(requestUrl) ?: return emptyList()
|
|
val rates = response.get("rates")
|
|
val rateData = mutableListOf<RateModel>()
|
|
rates.fields()
|
|
.forEachRemaining {
|
|
rateData.add(RateModel(it.key, it.value.asDouble()))
|
|
}
|
|
return rateData
|
|
}
|
|
} |