now using ZIO-http, currently trying to familiarize with this new library

production
Override-6 2 years ago
parent 04924ee757
commit 798fbe9347

@ -19,10 +19,7 @@ class Endpoint(hostname: String, port: Int, rootPath: Option[String]) extends ZI
private val app = Http.collectZIO[Request] {
case r@_ -> Root / path if handlers.contains(path) =>
for {
handler <- handlers.get(path)
_ <- handler.handle
} yield ()
handlers(path).handle.provideEnvironment(ZEnvironment(r))
case _ -> path =>
ZIO.fail(new APIException(s"Unable to find a handler for page '$path'"))
}

@ -5,16 +5,19 @@ import org.tbasket.api.compute.APIRequestHandler
import zio.ZIO
import zio.http.model.Method._
import zio.http.{Request, Response}
object IncrementHandler extends APIRequestHandler {
private var i = 0
override def handle: ZIO[Request, APIException, Response] = {
case GET -> _ => Response.json(s"value: $i")
case POST -> _ =>
override def handle: ZIO[Request, APIException, Response] = {r: Request =>
r match {
case Request(_, _, GET, _, _, _) =>
ZIO.succeed(Response.json(s"value: $i"))
case Request(_, _, POST, _, _, _) =>
i += 1
Response.ok
ZIO.succeed(Response.ok)
Console
}
}
}