diff options
author | Li Haoyi <haoyi.sg@gmail.com> | 2018-08-12 23:29:31 +0800 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2018-08-12 23:29:31 +0800 |
commit | a7cec9465105a8b983bac7ac721827f578f35166 (patch) | |
tree | 17da60565b02a51152862827136c5eb29087f2fd /cask | |
parent | 11f8fa2faaef68684a91716f6331a4e6e1463b3b (diff) | |
download | cask-a7cec9465105a8b983bac7ac721827f578f35166.tar.gz cask-a7cec9465105a8b983bac7ac721827f578f35166.tar.bz2 cask-a7cec9465105a8b983bac7ac721827f578f35166.zip |
tweak docgen
Diffstat (limited to 'cask')
-rw-r--r-- | cask/src/cask/endpoints/JsonEndpoint.scala | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/cask/src/cask/endpoints/JsonEndpoint.scala b/cask/src/cask/endpoints/JsonEndpoint.scala index fdbbbec..51199c3 100644 --- a/cask/src/cask/endpoints/JsonEndpoint.scala +++ b/cask/src/cask/endpoints/JsonEndpoint.scala @@ -1,9 +1,11 @@ package cask.endpoints +import java.io.ByteArrayOutputStream + import cask.internal.{Router, Util} import cask.internal.Router.EntryPoint import cask.main.{Endpoint, Routes} -import cask.model.{Response, ParamContext} +import cask.model.{ParamContext, Response} sealed trait JsReader[T] extends Router.ArgReader[ujson.Js.Value, T, cask.model.ParamContext] @@ -34,7 +36,11 @@ class postJson(val path: String, override val subpath: Boolean = false) extends delegate: Map[String, Input] => Router.Result[Output]): Router.Result[Response] = { val obj = for{ str <- - try Right(new String(ctx.exchange.getInputStream.readAllBytes())) + try { + val boas = new ByteArrayOutputStream() + Util.transferTo(ctx.exchange.getInputStream, boas) + Right(new String(boas.toByteArray)) + } catch{case e: Throwable => Left(cask.model.Response( "Unable to deserialize input JSON text: " + e + "\n" + Util.stackTraceString(e) ))} |