in fapi-client/src/main/scala/com/gu/facia/api/utils/ItemKicker.scala [8:44]
def fromContentAndTrail(
maybeContent: Option[Content],
trailMeta: MetaDataCommonFields,
metaDefaults: ResolvedMetaData,
config: Option[CollectionConfig]): Option[ItemKicker] = {
lazy val maybeTag = maybeContent.flatMap(_.tags.headOption)
lazy val tagKicker = maybeTag.map(TagKicker.fromTag)
lazy val sectionKicker = for {
content <- maybeContent
name <- content.sectionName
id <- content.sectionId
} yield SectionKicker(name.capitalize, "/" + id)
trailMeta.customKicker match {
case Some(kicker)
if trailMeta.snapType.exists(_.contains("latest")) &&
metaDefaults.showKickerCustom &&
trailMeta.snapUri.isDefined => Some(FreeHtmlKickerWithLink(kicker, s"/${trailMeta.snapUri.get}"))
case Some(kicker) if metaDefaults.showKickerCustom => Some(FreeHtmlKicker(kicker))
case _ => if (trailMeta.isBreaking.exists(identity)) {
Some(BreakingNewsKicker)
} else if (metaDefaults.showKickerTag && maybeTag.isDefined) {
tagKicker
} else if (metaDefaults.showKickerSection) {
sectionKicker
} else if (config.exists(_.showTags) && maybeTag.isDefined) {
tagKicker
} else if (config.exists(_.showSections)) {
sectionKicker
} else if (!config.exists(_.hideKickers) && maybeContent.isDefined) {
tonalKicker(maybeContent.get, trailMeta)
} else {
None
}
}
}