Use Netty HttpServer in XnfApiServer
[dcaegen2/collectors/hv-ves.git] / sources / hv-collector-utils / src / main / kotlin / org / onap / dcae / collectors / veshv / utils / http / netty.kt
index 33e65e4..cf338a7 100644 (file)
@@ -19,6 +19,7 @@
  */
 package org.onap.dcae.collectors.veshv.utils.http
 
+import arrow.core.Either
 import arrow.effects.IO
 import org.onap.dcae.collectors.veshv.utils.logging.Logger
 import reactor.core.publisher.Mono
@@ -52,6 +53,12 @@ fun HttpServerResponse.sendAndHandleErrors(response: IO<Response>): NettyOutboun
                 }
         )
 
+fun <A> HttpServerResponse.sendEitherErrorOrResponse(response: Either<A, Response>): NettyOutbound =
+        when (response) {
+            is Either.Left -> sendResponse(errorResponse(response.a.toString()))
+            is Either.Right -> sendAndHandleErrors(IO.just(response.b))
+        }
+
 private fun HttpServerResponse.sendResponse(response: Response): NettyOutbound {
     val respWithStatus = status(response.status.number)
     val responseContent = response.content