in src/main/scala/com/gu/liveappversions/android/Lambda.scala [37:60]
def partialKey(version: Version): String = s"android-live-app/versions/${version.name}.json"
def getVersionsFromS3(env: Env, uploadBucketName: String, versions: AndroidLiveAppVersions): Try[List[VersionWithTracks]] = {
def readBuildInfo(version: Version): Try[VersionWithTracks] = {
S3Storage.getJsonString(env, uploadBucketName, partialKey(version)) match {
case Success(Some(jsonString)) =>
parser.decode[VersionJson](jsonString).map(versionJson => VersionJson.toVersionWithTracks(versionJson)).toTry
case Success(None) =>
Success(VersionWithTracks(version, Set.empty))
case Failure(exception) =>
Failure(exception)
}
}
val versionsToCheck = List(versions.currentBeta, versions.currentProduction).distinct
val readAttempts = versionsToCheck.map {
version => readBuildInfo(version)
}
Try(readAttempts.map(_.get))
}