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