in fapi-client/src/main/scala/com/gu/facia/api/utils/ContentApiUtils.scala [10:34]
private def tagsOfType(tagType: TagType): Seq[Tag] = content.tags.toSeq.filter(_.`type` == tagType)
lazy val keywords: Seq[Tag] = tagsOfType(TagType.Keyword)
lazy val nonKeywordTags: Seq[Tag] = content.tags.toSeq.filterNot(_.`type` == TagType.Keyword)
lazy val contributors: Seq[Tag] = tagsOfType(TagType.Contributor)
lazy val isContributorPage: Boolean = contributors.nonEmpty
lazy val series: Seq[Tag] = tagsOfType(TagType.Series)
lazy val blogs: Seq[Tag] = tagsOfType(TagType.Blog)
lazy val tones: Seq[Tag] = tagsOfType(TagType.Tone)
lazy val types: Seq[Tag] = tagsOfType(TagType.Type)
lazy val isLiveBlog: Boolean = tones.exists(t => Tags.liveMappings.contains(t.id))
lazy val isComment = tones.exists(t => Tags.commentMappings.contains(t.id))
lazy val isFeature = tones.exists(t => Tags.featureMappings.contains(t.id))
lazy val isReview = tones.exists(t => Tags.reviewMappings.contains(t.id))
lazy val isMedia = types.exists(t => Tags.mediaTypes.contains(t.id))
lazy val isAnalysis = tones.exists(_.id == Tags.Analysis)
lazy val isPodcast = isAudio && (types.exists(_.id == Tags.Podcast) || content.tags.exists(_.podcast.isDefined))
lazy val isAudio = types.exists(_.id == Tags.Audio)
lazy val isEditorial = tones.exists(_.id == Tags.Editorial)
lazy val isCartoon = types.exists(_.id == Tags.Cartoon)
lazy val isLetters = tones.exists(_.id == Tags.Letters)
lazy val isCrossword = types.exists(_.id == Tags.Crossword)
lazy val isArticle: Boolean = content.tags.exists { _.id == Tags.Article }