diff options
author | Li Haoyi <haoyi.sg@gmail.com> | 2018-07-25 19:19:35 +0800 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2018-07-25 19:19:35 +0800 |
commit | b985aa5d25d97794b26402f936c4323f977c4073 (patch) | |
tree | 60041c73efe6b25eff96db7a67e260e2f9f6614d /cask/src/cask/endpoints | |
parent | 072028c76efde19c459b35d9e2a6789f03baa1b0 (diff) | |
download | cask-b985aa5d25d97794b26402f936c4323f977c4073.tar.gz cask-b985aa5d25d97794b26402f936c4323f977c4073.tar.bz2 cask-b985aa5d25d97794b26402f936c4323f977c4073.zip |
HTTP method distinction now works, by generating parallel routing trees one-per-method
Diffstat (limited to 'cask/src/cask/endpoints')
-rw-r--r-- | cask/src/cask/endpoints/FormEndpoint.scala | 1 | ||||
-rw-r--r-- | cask/src/cask/endpoints/JsonEndpoint.scala | 1 | ||||
-rw-r--r-- | cask/src/cask/endpoints/StaticEndpoints.scala | 1 | ||||
-rw-r--r-- | cask/src/cask/endpoints/WebEndpoints.scala | 12 |
4 files changed, 12 insertions, 3 deletions
diff --git a/cask/src/cask/endpoints/FormEndpoint.scala b/cask/src/cask/endpoints/FormEndpoint.scala index 2c420e9..2b8cf25 100644 --- a/cask/src/cask/endpoints/FormEndpoint.scala +++ b/cask/src/cask/endpoints/FormEndpoint.scala @@ -36,6 +36,7 @@ object FormReader{ } } class postForm(val path: String, override val subpath: Boolean = false) extends Routes.Endpoint[Response]{ + val methods = Seq("post") type InputType = Seq[FormValue] def wrapMethodOutput(t: Response) = t def parseMethodInput[T](implicit p: FormReader[T]) = p diff --git a/cask/src/cask/endpoints/JsonEndpoint.scala b/cask/src/cask/endpoints/JsonEndpoint.scala index ffbe290..f172b2b 100644 --- a/cask/src/cask/endpoints/JsonEndpoint.scala +++ b/cask/src/cask/endpoints/JsonEndpoint.scala @@ -25,6 +25,7 @@ object JsReader{ } } class postJson(val path: String, override val subpath: Boolean = false) extends Routes.Endpoint[Response]{ + val methods = Seq("post") type InputType = ujson.Js.Value def wrapMethodOutput(t: Response) = t def parseMethodInput[T](implicit p: JsReader[T]) = p diff --git a/cask/src/cask/endpoints/StaticEndpoints.scala b/cask/src/cask/endpoints/StaticEndpoints.scala index 89e4f4a..937b9c2 100644 --- a/cask/src/cask/endpoints/StaticEndpoints.scala +++ b/cask/src/cask/endpoints/StaticEndpoints.scala @@ -6,6 +6,7 @@ import cask.main.Routes import cask.model.{BaseResponse, ParamContext} class static(val path: String) extends Routes.Endpoint[String] { + val methods = Seq("get") type InputType = Seq[String] override def subpath = true def wrapOutput(t: String) = t diff --git a/cask/src/cask/endpoints/WebEndpoints.scala b/cask/src/cask/endpoints/WebEndpoints.scala index ed93c6c..14c21ce 100644 --- a/cask/src/cask/endpoints/WebEndpoints.scala +++ b/cask/src/cask/endpoints/WebEndpoints.scala @@ -27,9 +27,15 @@ trait WebEndpoint extends Routes.Endpoint[BaseResponse]{ .asInstanceOf[Router.Result[BaseResponse]] } } -class get(val path: String, override val subpath: Boolean = false) extends WebEndpoint -class post(val path: String, override val subpath: Boolean = false) extends WebEndpoint -class put(val path: String, override val subpath: Boolean = false) extends WebEndpoint +class get(val path: String, override val subpath: Boolean = false) extends WebEndpoint{ + val methods = Seq("get") +} +class post(val path: String, override val subpath: Boolean = false) extends WebEndpoint{ + val methods = Seq("post") +} +class put(val path: String, override val subpath: Boolean = false) extends WebEndpoint{ + val methods = Seq("put") +} class route(val path: String, val methods: Seq[String], override val subpath: Boolean = false) extends WebEndpoint abstract class QueryParamReader[T] |