diff options
author | Li Haoyi <haoyi.li@databricks.com> | 2019-09-14 16:45:39 +0800 |
---|---|---|
committer | Li Haoyi <haoyi.li@databricks.com> | 2019-09-14 17:40:26 +0800 |
commit | 4e853a9d5b9563dbe1909757bf4be4d8e7d2b36a (patch) | |
tree | 684863947658d22f91804090c81a68d012b82b6c /cask/src/cask/endpoints/WebEndpoints.scala | |
parent | 90b6806e5fb91b207f9d8e2da2a58c25928badea (diff) | |
download | cask-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.scala | 14 |
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") |