private def videoToPageElement()

in common/app/model/dotcomrendering/pageElements/PageElement.scala [1933:2003]


  private def videoToPageElement(element: ApiBlockElement): Option[PageElement] = {
    for {
      data <- element.videoTypeData
      source <- data.source
      caption = data.caption
      title = data.title
      originalUrl <- data.originalUrl
      height <- data.height
      width <- data.width
      url = data.url.getOrElse(originalUrl)
      thirdPartyTracking = containsThirdPartyTracking(element.tracking)
    } yield {
      source.toLowerCase match {
        case "youtube" =>
          VideoYoutubeBlockElement(
            caption,
            title,
            url,
            originalUrl,
            getEmbedUrl(data.html),
            height,
            width,
            Role(data.role),
            thirdPartyTracking,
            data.source,
            data.sourceDomain,
          )
        case "vimeo" =>
          VideoVimeoBlockElement(
            caption,
            title,
            url,
            originalUrl,
            getEmbedUrl(data.html),
            height,
            width,
            Role(data.role),
            thirdPartyTracking,
            data.source,
            data.sourceDomain,
          )
        case "facebook" =>
          VideoFacebookBlockElement(
            caption,
            title,
            url,
            originalUrl,
            getEmbedUrl(data.html),
            height,
            width,
            Role(data.role),
            thirdPartyTracking,
            data.source,
            data.sourceDomain,
          )
        case _ =>
          VideoBlockElement(
            caption,
            title,
            url,
            originalUrl,
            height,
            width,
            Role(data.role),
            thirdPartyTracking,
            data.source,
            data.sourceDomain,
          )
      }
    }
  }