diff options
Diffstat (limited to 'src/main/scala/xyz/driver/pdsuicommon/computation/Computation.scala')
-rw-r--r-- | src/main/scala/xyz/driver/pdsuicommon/computation/Computation.scala | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/src/main/scala/xyz/driver/pdsuicommon/computation/Computation.scala b/src/main/scala/xyz/driver/pdsuicommon/computation/Computation.scala index af7d051..a9430e3 100644 --- a/src/main/scala/xyz/driver/pdsuicommon/computation/Computation.scala +++ b/src/main/scala/xyz/driver/pdsuicommon/computation/Computation.scala @@ -75,10 +75,7 @@ final case class Computation[+R, +T](future: Future[Either[R, T]]) { def mapAll[R2, T2](onLeft: R => Computation[R2, T2])(onRight: T => Computation[R2, T2])( onFailure: () => Computation[R2, T2])(implicit ec: ExecutionContext): Computation[R2, T2] = { - Computation(future.flatMap { success => - if (success.isRight) onRight(success.right.get).future - else onLeft(success.left.get).future - } recoverWith { + Computation(future.flatMap(_.fold(onLeft, onRight).future).recoverWith { case _ => onFailure().future }) } |