diff options
author | Li Haoyi <haoyi.sg@gmail.com> | 2018-07-25 17:02:16 +0800 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2018-07-25 17:10:40 +0800 |
commit | bafd0bb41ee9728ec908b730ebe4f9d69178fd4a (patch) | |
tree | 479dfa8fc342aea3a40811686669b996b6948c8d /cask/src/cask/main/Routes.scala | |
parent | 8a7a665f3d6cd386e57a55dcb003d25b76b14138 (diff) | |
download | cask-bafd0bb41ee9728ec908b730ebe4f9d69178fd4a.tar.gz cask-bafd0bb41ee9728ec908b730ebe4f9d69178fd4a.tar.bz2 cask-bafd0bb41ee9728ec908b730ebe4f9d69178fd4a.zip |
Enforce `com.lihaoyi:acyclic` on the Cask codebase
Diffstat (limited to 'cask/src/cask/main/Routes.scala')
-rw-r--r-- | cask/src/cask/main/Routes.scala | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/cask/src/cask/main/Routes.scala b/cask/src/cask/main/Routes.scala index d3c060b..33964fa 100644 --- a/cask/src/cask/main/Routes.scala +++ b/cask/src/cask/main/Routes.scala @@ -1,14 +1,25 @@ package cask.main -import cask.endpoints.Endpoint +import cask.internal.Router import cask.internal.Router.EntryPoint -import cask.model.ParamContext -import io.undertow.server.HttpServerExchange +import cask.model.{BaseResponse, ParamContext} import scala.reflect.macros.blackbox.Context import language.experimental.macros object Routes{ + + trait Endpoint[R]{ + type InputType + val path: String + def subpath: Boolean = false + def wrapMethodOutput(t: R): Any + def handle(ctx: ParamContext, + bindings: Map[String, String], + routes: Routes, + entryPoint: EntryPoint[InputType, Routes, cask.model.ParamContext]): Router.Result[BaseResponse] + } + case class EndpointMetadata[T](metadata: Endpoint[_], entryPoint: EntryPoint[_, T, ParamContext]) case class RoutesEndpointsMetadata[T](value: EndpointMetadata[T]*) |