Skip to content

Instantly share code, notes, and snippets.

@MikeDepies
Created April 10, 2018 14:26
Show Gist options
  • Save MikeDepies/4f93777874fe28cbb338c6a33cdb1da1 to your computer and use it in GitHub Desktop.
Save MikeDepies/4f93777874fe28cbb338c6a33cdb1da1 to your computer and use it in GitHub Desktop.
//..FileHandler Verticle
router.post("/fileUpload").handler(BodyHandler.create().setMergeFormAttributes(true)).handler {
println(it.fileUploads().size)
it.fileUploads().forEach({
println(it.fileName())
})
it.response().end(
JsonObject()
.put("message", "Success")
.encode())
}
//..GatewayVerticle Stub
private fun setupRoutes(router : Router, serviceDiscovery: ServiceDiscovery) : Router {
router.get("/health") { ctx ->
ctx.response().end("OK")
}
router.post("/upload").handler({uploadHandler(it, serviceDiscovery)})
return router
}
private fun uploadHandler(ctx: RoutingContext, serviceDiscovery: ServiceDiscovery) {
fun onError(throwable: Throwable) = ctx.run {
response().statusCode=HttpResponseStatus.FAILED_DEPENDENCY.code()
response().close()
}
fun onSuccess(webClient: WebClient) = webClient.post("/fileUpload").sendStream(ctx.request()) { response ->
ctx.response().end(response.result().bodyAsJsonObject().encodePrettily())
webClient.close()
ctx.response().close()
}
HttpEndpoint
.rxGetWebClient(serviceDiscovery, JsonObject().put("name", "fileHandler"))
.subscribeBy(onError = ::onError, onSuccess = ::onSuccess)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment