def apply()

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