def fromTrailAndContent()

in fapi-client/src/main/scala/com/gu/facia/api/models/curatedcontent.scala [197:221]


  def fromTrailAndContent(trail: Trail, maybeContent: Option[Content]): LatestSnap = {
    val cardStyle: CardStyle = maybeContent.map(CardStyle.apply(_, trail.safeMeta)).getOrElse(DefaultCardstyle)
    val contentFormat: ContentFormat = maybeContent.map(ContentFormat.apply).getOrElse(ContentFormat.defaultContentFormat)
    val resolvedMetaData: ResolvedMetaData =
      maybeContent.fold(ResolvedMetaData.fromTrailMetaData(trail.safeMeta))(ResolvedMetaData.fromContentAndTrailMetaData(_, trail.safeMeta, cardStyle))
    val brandingByEdition = maybeContent map (_.brandingByEdition) getOrElse Map.empty
    LatestSnap(
      trail.id,
      Option(trail.frontPublicationDate),
      cardStyle,
      contentFormat,
      trail.safeMeta.snapUri,
      trail.safeMeta.snapCss,
      maybeContent,
      trail.safeMeta.headline.orElse(maybeContent.flatMap(_.fields.flatMap(_.headline))).orElse(maybeContent.map(_.webTitle)),
      trail.safeMeta.href.orElse(maybeContent.map(_.id)),
      trail.safeMeta.trailText.orElse(maybeContent.flatMap(_.fields.flatMap(_.trailText))),
      trail.safeMeta.group.getOrElse("0"),
      FaciaImage.getFaciaImage(maybeContent, trail.safeMeta, resolvedMetaData),
      ContentProperties.fromResolvedMetaData(resolvedMetaData),
      trail.safeMeta.byline.orElse(maybeContent.flatMap(_.fields.flatMap(_.byline))),
      ItemKicker.fromMaybeContentTrailMetaAndResolvedMetaData(maybeContent, trail.safeMeta, resolvedMetaData),
      brandingByEdition
    )
  }