summaryrefslogtreecommitdiff
path: root/cask/src/cask/main/Routes.scala
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2018-07-25 17:02:16 +0800
committerLi Haoyi <haoyi.sg@gmail.com>2018-07-25 17:10:40 +0800
commitbafd0bb41ee9728ec908b730ebe4f9d69178fd4a (patch)
tree479dfa8fc342aea3a40811686669b996b6948c8d /cask/src/cask/main/Routes.scala
parent8a7a665f3d6cd386e57a55dcb003d25b76b14138 (diff)
downloadcask-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.scala17
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]*)