diff options
Diffstat (limited to 'core/src')
4 files changed, 12 insertions, 11 deletions
diff --git a/core/src/main/scala/com/softwaremill/sttp/MonadError.scala b/core/src/main/scala/com/softwaremill/sttp/MonadError.scala index 604e964..34edb0a 100644 --- a/core/src/main/scala/com/softwaremill/sttp/MonadError.scala +++ b/core/src/main/scala/com/softwaremill/sttp/MonadError.scala @@ -6,11 +6,11 @@ import scala.util.{Failure, Success, Try} trait MonadError[R[_]] { def unit[T](t: T): R[T] - def map[T, T2](fa: R[T], f: T => T2): R[T2] - def flatMap[T, T2](fa: R[T], f: T => R[T2]): R[T2] + def map[T, T2](fa: R[T])(f: T => T2): R[T2] + def flatMap[T, T2](fa: R[T])(f: T => R[T2]): R[T2] def error[T](t: Throwable): R[T] - def flatten[T](ffa: R[R[T]]): R[T] = flatMap[R[T], T](ffa, identity) + def flatten[T](ffa: R[R[T]]): R[T] = flatMap[R[T], T](ffa)(identity) def fromTry[T](t: Try[T]): R[T] = t match { case Success(v) => unit(v) @@ -24,8 +24,8 @@ trait MonadAsyncError[R[_]] extends MonadError[R] { object IdMonad extends MonadError[Id] { override def unit[T](t: T): Id[T] = t - override def map[T, T2](fa: Id[T], f: (T) => T2): Id[T2] = f(fa) - override def flatMap[T, T2](fa: Id[T], f: (T) => Id[T2]): Id[T2] = f(fa) + override def map[T, T2](fa: Id[T])(f: (T) => T2): Id[T2] = f(fa) + override def flatMap[T, T2](fa: Id[T])(f: (T) => Id[T2]): Id[T2] = f(fa) override def error[T](t: Throwable): Id[T] = throw t } @@ -33,8 +33,8 @@ class FutureMonad(implicit ec: ExecutionContext) extends MonadAsyncError[Future] { override def unit[T](t: T): Future[T] = Future.successful(t) - override def map[T, T2](fa: Future[T], f: (T) => T2): Future[T2] = fa.map(f) - override def flatMap[T, T2](fa: Future[T], f: (T) => Future[T2]): Future[T2] = + override def map[T, T2](fa: Future[T])(f: (T) => T2): Future[T2] = fa.map(f) + override def flatMap[T, T2](fa: Future[T])(f: (T) => Future[T2]): Future[T2] = fa.flatMap(f) override def error[T](t: Throwable): Future[T] = Future.failed(t) diff --git a/core/src/main/scala/com/softwaremill/sttp/ResponseAs.scala b/core/src/main/scala/com/softwaremill/sttp/ResponseAs.scala index 14d3606..00f549f 100644 --- a/core/src/main/scala/com/softwaremill/sttp/ResponseAs.scala +++ b/core/src/main/scala/com/softwaremill/sttp/ResponseAs.scala @@ -85,7 +85,7 @@ object ResponseAs { responseAs match { case mra @ MappedResponseAs(raw, g) => - responseMonad.map(responseMonad.fromTry(handleBasic(mra.raw)), mra.g) + responseMonad.map(responseMonad.fromTry(handleBasic(mra.raw)))(mra.g) case bra: BasicResponseAs[T, S] => responseMonad.fromTry(handleBasic(bra)) } diff --git a/core/src/main/scala/com/softwaremill/sttp/SttpHandler.scala b/core/src/main/scala/com/softwaremill/sttp/SttpHandler.scala index fd836bd..26464ba 100644 --- a/core/src/main/scala/com/softwaremill/sttp/SttpHandler.scala +++ b/core/src/main/scala/com/softwaremill/sttp/SttpHandler.scala @@ -14,13 +14,13 @@ trait SttpHandler[R[_], -S] { def send[T](request: Request[T, S]): R[Response[T]] = { val resp = doSend(request) if (request.options.followRedirects) { - responseMonad.flatMap(resp, { response: Response[T] => + responseMonad.flatMap(resp) { response: Response[T] => if (response.isRedirect) { followRedirect(request, response) } else { responseMonad.unit(response) } - }) + } } else { resp } diff --git a/core/src/main/scala/com/softwaremill/sttp/package.scala b/core/src/main/scala/com/softwaremill/sttp/package.scala index 24eb32c..63b82f0 100644 --- a/core/src/main/scala/com/softwaremill/sttp/package.scala +++ b/core/src/main/scala/com/softwaremill/sttp/package.scala @@ -253,7 +253,8 @@ package object sttp { private[sttp] def codeIsSuccess(c: Int): Boolean = c >= 200 && c < 300 - private[sttp] def concatByteBuffers(bb1: ByteBuffer, bb2: ByteBuffer): ByteBuffer = + private[sttp] def concatByteBuffers(bb1: ByteBuffer, + bb2: ByteBuffer): ByteBuffer = ByteBuffer .allocate(bb1.array().length + bb2.array().length) .put(bb1) |