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