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