def recoverWith()

in imageCopier/src/main/scala/com/gu/imageCopier/attempt/Attempt.scala [39:54]


  def recoverWith(
      pf: PartialFunction[Failure, Attempt[A]]
  )(implicit ec: ExecutionContext) = Attempt {
    asFuture.flatMap {
      case Right(a) =>
        Attempt.Right(a).asFuture

      case Left(err) =>
        val ret = pf.lift(err) match {
          case Some(attempt) => attempt
          case None          => Attempt.Left[A](err)
        }

        ret.asFuture
    }
  }