in fapi-client/src/main/scala/com/gu/facia/api/models/curatedcontent.scala [223:247]
def fromSupportingItemAndContent(supportingItem: SupportingItem, maybeContent: Option[Content]): LatestSnap = {
val cardStyle: CardStyle = maybeContent.map(CardStyle.apply(_, supportingItem.safeMeta)).getOrElse(DefaultCardstyle)
val contentFormat: ContentFormat = maybeContent.map(ContentFormat.apply).getOrElse(ContentFormat.defaultContentFormat)
val resolvedMetaData: ResolvedMetaData =
maybeContent.fold(ResolvedMetaData.fromTrailMetaData(supportingItem.safeMeta))(ResolvedMetaData.fromContentAndTrailMetaData(_, supportingItem.safeMeta, cardStyle))
val brandingByEdition = maybeContent map (_.brandingByEdition) getOrElse Map.empty
LatestSnap(
supportingItem.id,
supportingItem.frontPublicationDate,
cardStyle,
contentFormat,
supportingItem.safeMeta.snapUri,
supportingItem.safeMeta.snapCss,
maybeContent,
supportingItem.safeMeta.headline.orElse(maybeContent.flatMap(_.fields.flatMap(_.headline))).orElse(maybeContent.map(_.webTitle)),
supportingItem.safeMeta.href,
supportingItem.safeMeta.trailText.orElse(maybeContent.flatMap(_.fields.flatMap(_.trailText))),
supportingItem.safeMeta.group.getOrElse("0"),
FaciaImage.getFaciaImage(maybeContent, supportingItem.safeMeta, resolvedMetaData),
ContentProperties.fromResolvedMetaData(resolvedMetaData),
supportingItem.safeMeta.byline.orElse(maybeContent.flatMap(_.fields.flatMap(_.byline))),
ItemKicker.fromMaybeContentTrailMetaAndResolvedMetaData(maybeContent, supportingItem.safeMeta, resolvedMetaData),
brandingByEdition
)
}