in app/model/editions/EditionsCard.scala [224:283]
def toPublishedArticle(editionsArticle: EditionsArticle): PublishedArticle = {
var mediaType: Option[MediaType] =
editionsArticle.metadata.flatMap(_.mediaType)
val coverCardImages = editionsArticle.metadata.flatMap { meta =>
meta.mediaType match {
case Some(MediaType.CoverCard) =>
val mobile = meta.coverCardImages.flatMap(_.mobile)
val tablet = meta.coverCardImages.flatMap(_.tablet)
(mobile, tablet) match {
case (Some(m), Some(t)) =>
Some(PublishedCardImage(m.toPublishedImage, t.toPublishedImage))
case _ =>
logger.warn(
s"Failed to convert card images, must define both mobile and tablet images, falling back to use article trail"
)
mediaType = mediaType.map(_ => MediaType.UseArticleTrail)
None
}
case _ => None
}
}
val imageSrcOverride: Option[PublishedImage] =
editionsArticle.metadata.flatMap(meta => {
mediaType match {
case Some(MediaType.Image) =>
meta.replaceImage.map(_.toPublishedImage)
case Some(MediaType.Cutout) =>
meta.cutoutImage.map(_.toPublishedImage)
case _ => None
}
})
PublishedArticle(
editionsArticle.id.toLong,
PublishedFurniture(
kicker = editionsArticle.metadata.flatMap(_.customKicker),
headlineOverride = editionsArticle.metadata.flatMap(_.headline),
trailTextOverride = editionsArticle.metadata.flatMap(_.trailText),
bylineOverride = editionsArticle.metadata.flatMap(_.byline),
showByline = editionsArticle.metadata
.flatMap(_.showByline)
.getOrElse(PublishedArticle.SHOW_BYLINE_DEFAULT),
showQuotedHeadline = editionsArticle.metadata
.flatMap(_.showQuotedHeadline)
.getOrElse(PublishedArticle.SHOW_QUOTED_HEADLINE_DEFAULT),
mediaType = mediaType
.map(_.toPublishedMediaType)
.getOrElse(PublishedMediaType.UseArticleTrail),
imageSrcOverride = imageSrcOverride,
sportScore = editionsArticle.metadata.flatMap(_.sportScore),
overrideArticleMainMedia = editionsArticle.metadata
.flatMap(_.overrideArticleMainMedia)
.getOrElse(PublishedArticle.OVERRIDE_ARTICLE_MAIN_MEDIA_DEFAULT),
coverCardImages = coverCardImages
)
)
}