summaryrefslogtreecommitdiff
path: root/cask
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2018-08-12 23:29:31 +0800
committerLi Haoyi <haoyi.sg@gmail.com>2018-08-12 23:29:31 +0800
commita7cec9465105a8b983bac7ac721827f578f35166 (patch)
tree17da60565b02a51152862827136c5eb29087f2fd /cask
parent11f8fa2faaef68684a91716f6331a4e6e1463b3b (diff)
downloadcask-a7cec9465105a8b983bac7ac721827f578f35166.tar.gz
cask-a7cec9465105a8b983bac7ac721827f578f35166.tar.bz2
cask-a7cec9465105a8b983bac7ac721827f578f35166.zip
tweak docgen
Diffstat (limited to 'cask')
-rw-r--r--cask/src/cask/endpoints/JsonEndpoint.scala10
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)
))}