Skip to content

Instantly share code, notes, and snippets.

@dfreudenberger
Last active November 12, 2020 00:15
Show Gist options
  • Save dfreudenberger/d70d315b0e78ded9341575a07bc59ae9 to your computer and use it in GitHub Desktop.
Save dfreudenberger/d70d315b0e78ded9341575a07bc59ae9 to your computer and use it in GitHub Desktop.
suspend fun getProducts(...): ReceiveChannel<ResultPage<Product>> = GlobalScope.produce {
var requestUrl: String? = "/api/rest/v1/products"
var firstRequest = true
do {
val response = httpClient.get<ResultPage<Product>> {
url(requestUrl!!)
header("Authorization", "Bearer ${token.accessToken}")
if (firstRequest) {
contentType(ContentType.Application.Json)
parameter("search", objectMapper.writeValueAsString(search))
params.forEach { k, v -> parameter(k, v) }
firstRequest = false
}
}
send(response)
requestUrl = response.links.next?.href
} while (requestUrl != null)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment