demo-money-project/src/main/kotlin/com/example/demo/rest/RestWebClient.kt

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
}
}