def toPublishedArticle()

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