diff options
author | Li Haoyi <haoyi.li@databricks.com> | 2019-09-14 18:25:51 +0800 |
---|---|---|
committer | Li Haoyi <haoyi.li@databricks.com> | 2019-09-14 18:25:51 +0800 |
commit | 2c1dcc3cd33fbd2c2c921f20f67c45ce48c1e8bc (patch) | |
tree | 51bc3ee00736d8a55c0515b998f8057d431be018 /cask/src/cask/endpoints | |
parent | 4e853a9d5b9563dbe1909757bf4be4d8e7d2b36a (diff) | |
download | cask-2c1dcc3cd33fbd2c2c921f20f67c45ce48c1e8bc.tar.gz cask-2c1dcc3cd33fbd2c2c921f20f67c45ce48c1e8bc.tar.bz2 cask-2c1dcc3cd33fbd2c2c921f20f67c45ce48c1e8bc.zip |
`cask.Response` is now covariant
Diffstat (limited to 'cask/src/cask/endpoints')
-rw-r--r-- | cask/src/cask/endpoints/JsonEndpoint.scala | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/cask/src/cask/endpoints/JsonEndpoint.scala b/cask/src/cask/endpoints/JsonEndpoint.scala index edf0c46..3b3b095 100644 --- a/cask/src/cask/endpoints/JsonEndpoint.scala +++ b/cask/src/cask/endpoints/JsonEndpoint.scala @@ -4,7 +4,9 @@ import java.io.{ByteArrayOutputStream, InputStream, OutputStream, OutputStreamWr import cask.internal.{Router, Util} import cask.main.Endpoint +import cask.model.Response.DataCompanion import cask.model.{Request, Response} + import collection.JavaConverters._ sealed trait JsReader[T] extends Router.ArgReader[ujson.Value, T, cask.model.Request] @@ -27,7 +29,7 @@ object JsReader{ } } trait JsonData extends Response.Data -object JsonData{ +object JsonData extends DataCompanion[JsonData]{ implicit class JsonDataImpl[T: upickle.default.Writer](t: T) extends JsonData{ def write(out: OutputStream) = { val writer = new OutputStreamWriter(out) @@ -71,7 +73,7 @@ class postJson(val path: String, override val subpath: Boolean = false) extends } yield obj.toMap obj match{ case Left(r) => Router.Result.Success(r.map(Response.Data.StringData)) - case Right(params) => delegate(params).map(_.data) + case Right(params) => delegate(params) } } def wrapPathSegment(s: String): Input = ujson.Str(s) @@ -83,12 +85,9 @@ class getJson(val path: String, override val subpath: Boolean = false) extends E type Input = Seq[String] type InputParser[T] = QueryParamReader[T] override type OuterReturned = Router.Result[Response.Raw] - def wrapFunction(ctx: Request, - delegate: Delegate): Router.Result[Response.Raw] = { - - val res = delegate(WebEndpoint.buildMapFromQueryParams(ctx)) + def wrapFunction(ctx: Request, delegate: Delegate): Router.Result[Response.Raw] = { - res.map(_.data) + delegate(WebEndpoint.buildMapFromQueryParams(ctx)) } def wrapPathSegment(s: String) = Seq(s) }
\ No newline at end of file |