def versionList()

in app/controllers/Versions.scala [38:62]


  def versionList(contentId: String) = AuthAction.async {
    val snapshotsWithMetadata = Attempt.successfulAttempts(config.sourceStacks.flatMap { stack =>
      val snapshots = snapshotApi.listForId(stack.snapshotBucket, contentId)
      snapshots.map { snapshotId =>
        val identifier = Json.toJson(snapshotId).asInstanceOf[JsObject]
        val info: Attempt[JsValue] =
          for (
            snapshotInfo <- snapshotApi.getSnapshotInfo(stack.snapshotBucket, snapshotId)
          ) yield {
            snapshotInfo.getOrElse(JsObject(Nil))
          }
        info.map { infoJson =>
          identifier ++ Json.obj(
            "system" -> Json.obj(
              "id" -> stack.id,
              "isSecondary" -> stack.isSecondary,
              "composerPrefix" -> stack.composerPrefix
            ),
            "info" -> infoJson
          )
        }
      }
    })
    snapshotsWithMetadata.fold(errors => InternalServerError(errors.toString), snapshots => Ok(Json.toJson(snapshots)))
  }