def logResultsAttempts()

in src/main/scala/com/gu/flexible/snapshotter/SnapshottingLambda.scala [85:102]


  def logResultsAttempts(succeeded: Seq[Attempt[PutObjectResult]], successMetric: Option[MetricName] = None,
    failureMetric: Option[MetricName] = None)(implicit cloudWatchClient:AmazonCloudWatch, config: CommonConfig): Future[Unit] = {
    Future.sequence(succeeded.map(_.asFuture)).map { attempts =>
      attempts.foreach {
        case Left(failures) =>
          failureMetric.map { metric =>
            CloudWatchLogic.putMetricData(metric -> MetricValue(failures.errors.size, MetricValue.Count))
          }
          failures.errors.foreach(_.logTo(log))
        case Right(result) =>
          successMetric.map { metric =>
            CloudWatchLogic.putMetricData(metric -> MetricValue(1.0, MetricValue.Count)
            )
          }
          log.info(s"SUCCESS: $result")
      }
    }
  }