diff --git a/API/src/main/scala/org/tbasket/api/Endpoint.scala b/API/src/main/scala/org/tbasket/api/Endpoint.scala index aee3d46..09b81b4 100644 --- a/API/src/main/scala/org/tbasket/api/Endpoint.scala +++ b/API/src/main/scala/org/tbasket/api/Endpoint.scala @@ -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'")) } diff --git a/src/main/scala/org/tbasket/compute/IncrementHandler.scala b/src/main/scala/org/tbasket/compute/IncrementHandler.scala index 85e1922..fe78c0d 100644 --- a/src/main/scala/org/tbasket/compute/IncrementHandler.scala +++ b/src/main/scala/org/tbasket/compute/IncrementHandler.scala @@ -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 -> _ => - i += 1 - Response.ok + 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 + ZIO.succeed(Response.ok) + Console + } } }