def setStatus()

in common/src/main/scala/com/gu/media/youtube/YouTubeVideos.scala [98:127]


  def setStatus(id: String, privacyStatus: PrivacyStatus): Either[VideoUpdateError, String] = {
    getVideo(id, List("snippet","status")) match {
      case Some(video) => {
        findMistakesInDev(video) match {
          case None => {

            video.getStatus.setPrivacyStatus(privacyStatus.name)

            try {
              val request = client.videos()
                .update(List("snippet", "status").asJava, video)
                .setOnBehalfOfContentOwner(contentOwner)

              YoutubeRequestLogger.logRequest(YoutubeApiType.DataApi, YoutubeRequestType.UpdateVideoPrivacyStatus)
              request.execute()

              Right(s"marked privacy status as ${privacyStatus.name}")
            }
            catch {
              case e: GoogleJsonResponseException =>
                val error: GoogleJsonError = e.getDetails
                Left(VideoUpdateError(error.getMessage, Some(error.toString)))
            }
          }
          case Some(error) => Left(VideoUpdateError(error))
        }
      }
      case _ => Right(s"no privacy status to update")
    }
  }