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