How to build a proxy for HTTP requests with Fuel

442 Views Asked by At

I was using restTemplate and this was my method:

    fun fetchAvailableCars(): Aggregations? {
        val availableCarsUrl = UriComponentsBuilder
            .fromHttpUrl(getCatalogUrl())
            .query("aggsBy={aggregators}")
            .buildAndExpand("brand,model")
            .toString()

        return restTemplate.getForEntity(availableCarsUrl, Aggregations::class.java).body
    }

I'm trying to use Fuel to do basically the same thing (but handling errors), but I couldn't find a simple way to do that.

This is what I have so far:

fun fetchAvailableCarsWithFuel() {
        val availableCarsUrl = UriComponentsBuilder
            .fromHttpUrl(getCatalogUrl())
            .query("aggsBy={aggregators}")
            .buildAndExpand("brand,model")
            .toString()

        Fuel.get(availableCarsUrl)
            .responseObject<Aggregations> { _, _, result ->
                when (result) {
                    is Success -> {
                        result.get()
                    }
                    is Failure -> {
                        // log.error
                    }
                }
            }
    }

but there's no easy way to return the body from inside the lambda. What are the common ways to do that?

P.S.: I'm using fuel-jackson to deserialize the response

0

There are 0 best solutions below