in src/main/scala/managehelpcontentpublisher/S3.scala [25:41]
private def get(key: String): Either[Failure, Option[String]] =
Try(
client
.getObjectAsBytes(
GetObjectRequest
.builder()
.bucket(config.aws.bucketName)
.key(key)
.build()
).asUtf8String()
).toEither
.map(Some(_))
.left
.flatMap {
case _: NoSuchKeyException => Right(None)
case e => Left(ResponseFailure(s"Failed to get s3://${config.aws.bucketName}/$key: ${e.getMessage}"))
}