summaryrefslogtreecommitdiff
path: root/cask/src/cask/endpoints/WebEndpoints.scala
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.li@databricks.com>2019-09-14 16:45:39 +0800
committerLi Haoyi <haoyi.li@databricks.com>2019-09-14 17:40:26 +0800
commit4e853a9d5b9563dbe1909757bf4be4d8e7d2b36a (patch)
tree684863947658d22f91804090c81a68d012b82b6c /cask/src/cask/endpoints/WebEndpoints.scala
parent90b6806e5fb91b207f9d8e2da2a58c25928badea (diff)
downloadcask-4e853a9d5b9563dbe1909757bf4be4d8e7d2b36a.tar.gz
cask-4e853a9d5b9563dbe1909757bf4be4d8e7d2b36a.tar.bz2
cask-4e853a9d5b9563dbe1909757bf4be4d8e7d2b36a.zip
.
Diffstat (limited to 'cask/src/cask/endpoints/WebEndpoints.scala')
-rw-r--r--cask/src/cask/endpoints/WebEndpoints.scala14
1 files changed, 9 insertions, 5 deletions
diff --git a/cask/src/cask/endpoints/WebEndpoints.scala b/cask/src/cask/endpoints/WebEndpoints.scala
index ab3b480..7cac4f5 100644
--- a/cask/src/cask/endpoints/WebEndpoints.scala
+++ b/cask/src/cask/endpoints/WebEndpoints.scala
@@ -8,12 +8,17 @@ import collection.JavaConverters._
trait WebEndpoint extends Endpoint{
- type Output = Response
+ type InnerReturned = Response.Raw
type Input = Seq[String]
type InputParser[T] = QueryParamReader[T]
def wrapFunction(ctx: Request,
- delegate: Map[String, Input] => Router.Result[Output]): Router.Result[Response] = {
-
+ delegate: Delegate): Router.Result[Response.Raw] = {
+ delegate(WebEndpoint.buildMapFromQueryParams(ctx))
+ }
+ def wrapPathSegment(s: String) = Seq(s)
+}
+object WebEndpoint{
+ def buildMapFromQueryParams(ctx: Request) = {
val b = Map.newBuilder[String, Seq[String]]
val queryParams = ctx.exchange.getQueryParameters
for(k <- queryParams.keySet().iterator().asScala){
@@ -22,9 +27,8 @@ trait WebEndpoint extends Endpoint{
deque.toArray(arr)
b += (k -> (arr: Seq[String]))
}
- delegate(b.result())
+ b.result()
}
- def wrapPathSegment(s: String) = Seq(s)
}
class get(val path: String, override val subpath: Boolean = false) extends WebEndpoint{
val methods = Seq("get")