def partialKey()

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))

  }