in common/src/main/scala/com/gu/media/youtube/YouTubeProcessingStatus.scala [14:39]
def apply(video: Video): Option[YouTubeProcessingStatus] = {
val base = YouTubeProcessingStatus(video.getId, status = "", total = 0, processed = 0, timeLeftMs = 0, failure = None)
if (isLiveStream(video)) {
Some(base.copy(status = "live"))
} else {
val summary = video.getStatus
summary.getUploadStatus match {
case "uploaded" =>
Some(parseProcessingStatus(base, video.getProcessingDetails))
case "failed" =>
Some(base.copy(status = "failed", failure = Option(summary.getFailureReason).map(humanizeFailureReason)))
case "rejected" =>
Some(base.copy(status = "failed", failure = Option(summary.getRejectionReason).map(humanizeRejectionReason)))
case "processed" =>
None
case other =>
Some(base.copy(status = other))
}
}
}