summaryrefslogtreecommitdiff
path: root/cask/src/cask/endpoints
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2018-07-25 19:19:35 +0800
committerLi Haoyi <haoyi.sg@gmail.com>2018-07-25 19:19:35 +0800
commitb985aa5d25d97794b26402f936c4323f977c4073 (patch)
tree60041c73efe6b25eff96db7a67e260e2f9f6614d /cask/src/cask/endpoints
parent072028c76efde19c459b35d9e2a6789f03baa1b0 (diff)
downloadcask-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.scala1
-rw-r--r--cask/src/cask/endpoints/JsonEndpoint.scala1
-rw-r--r--cask/src/cask/endpoints/StaticEndpoints.scala1
-rw-r--r--cask/src/cask/endpoints/WebEndpoints.scala12
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]