in uploader/src/main/scala/com/gu/media/upload/GetTranscodingProgress.scala [12:32]
override def handle(upload: Upload): Upload = {
upload.metadata.runtime match {
case SelfHostedUploadMetadata(ids) =>
val jobs = ids.map(getJob)
val progress = upload.progress
val complete = jobs.forall(_.getStatus == "Complete")
val error = jobs.exists(_.getStatus == "Error")
if(error) {
throw new IllegalStateException(s"Transcode failed: [${jobs.map(getDescription).mkString(",")}]")
} else if(complete) {
upload.copy(progress = progress.copy(retries = 0, fullyTranscoded = true))
} else {
upload.copy(progress = progress.copy(retries = progress.retries + 1))
}
case other =>
throw new IllegalArgumentException(s"Unexpected runtime metadata $other")
}
}