private def claimVideo()

in common/src/main/scala/com/gu/media/youtube/YouTubePartnerApi.scala [73:99]


  private def claimVideo(atomId: String, assetId: String, videoId: String, policy: Policy): Either[VideoUpdateError, String] = {
    MAMLogger.info(s"Claiming video $videoId", atomId, videoId)
    val claim = new Claim()
      .setAssetId(assetId)
      .setVideoId(videoId)
      .setPolicy(policy)
      .setContentType("audiovisual")

    try {
      val request = partnerClient.claims()
        .insert(claim)
        .setOnBehalfOfContentOwner(contentOwner)

      YoutubeRequestLogger.logRequest(YoutubeApiType.PartnerApi, YoutubeRequestType.CreateVideoClaim)
      val newClaim: Claim = request.execute()
      MAMLogger.info(s"Successfully claimed video $videoId", atomId, videoId)
      Right(s"No partner claim found, claimed video ${videoId} with a new claim ${newClaim.getId}")

    } catch {
      case e: GoogleJsonResponseException => {
        val error: GoogleJsonError = e.getDetails
        MAMLogger.error(s"Failed to claim video $videoId. ${error.toString} ${error.getMessage}", atomId, videoId)
        Left(VideoUpdateError(s"Error in claiming video with new claim: ${error.toString()}", Some(error.getMessage)))
      }
    }

  }