aboutsummaryrefslogtreecommitdiff
path: root/akka-http-handler/src/main/scala/com/softwaremill
diff options
context:
space:
mode:
Diffstat (limited to 'akka-http-handler/src/main/scala/com/softwaremill')
-rw-r--r--akka-http-handler/src/main/scala/com/softwaremill/sttp/akkahttp/AkkaHttpHandler.scala10
1 files changed, 8 insertions, 2 deletions
diff --git a/akka-http-handler/src/main/scala/com/softwaremill/sttp/akkahttp/AkkaHttpHandler.scala b/akka-http-handler/src/main/scala/com/softwaremill/sttp/akkahttp/AkkaHttpHandler.scala
index 5691d3c..35f8f81 100644
--- a/akka-http-handler/src/main/scala/com/softwaremill/sttp/akkahttp/AkkaHttpHandler.scala
+++ b/akka-http-handler/src/main/scala/com/softwaremill/sttp/akkahttp/AkkaHttpHandler.scala
@@ -41,8 +41,14 @@ class AkkaHttpHandler private (actorSystem: ActorSystem,
.flatMap(Http().singleRequest(_))
.flatMap { hr =>
val code = hr.status.intValue()
- bodyFromAkka(r.response, decodeAkkaResponse(hr))
- .map(Response(_, code, headersFromAkka(hr)))
+
+ val body = if (codeIsSuccess(code)) {
+ bodyFromAkka(r.response, decodeAkkaResponse(hr)).map(Right(_))
+ } else {
+ bodyFromAkka(asString, decodeAkkaResponse(hr)).map(Left(_))
+ }
+
+ body.map(Response(_, code, headersFromAkka(hr)))
}
}