in notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm/models/payload/FcmPayloadBuilder.scala [45:85]
private def breakingNewsAndroidNotification(breakingNews: BreakingNewsNotification, debug: Boolean): FirebaseAndroidNotification = {
val sectionLink = condOpt(breakingNews.link) {
case Link.Internal(contentApiId, _, GITSection, _) => contentApiId
}
val tagLink = condOpt(breakingNews.link) {
case Link.Internal(contentApiId, _, GITTag, _) => contentApiId
}
val editions = breakingNews.topic
.filter(_.`type` == TopicTypes.Breaking)
.map(_.name)
.collect(Edition.fromString)
val platformLink = toPlatformLink(breakingNews.link)
val edition = if (editions.size == 1) Some(editions.head) else None
val keyword = tagLink.map(new URI(_))
val title = breakingNews.title.getOrElse("The Guardian")
FirebaseAndroidNotification(
notificationId = breakingNews.id,
data = Map(
Keys.NotificationType -> breakingNews.`type`.value,
Keys.Type -> MessageTypes.Custom,
Keys.Debug -> debug.toString,
Keys.Editions -> editions.mkString(","),
Keys.Link -> toAndroidLink(breakingNews.link).toString,
Keys.UriType -> platformLink.`type`,
Keys.Uri -> platformLink.uri,
Keys.Title -> title,
) ++ sectionLink.map(new URI(_)).map(Keys.Section -> _.toString).toMap
++ edition.map(Keys.Edition -> _.toString).toMap
++ keyword.map(Keys.Keyword -> _.toString).toMap
++ breakingNews.imageUrl.map(Keys.ImageUrl -> _.toString).toMap
++ breakingNews.thumbnailUrl.map(Keys.ThumbnailUrl -> _.toString).toMap
++ breakingNews.message.map(Keys.Message -> _).toMap
++ breakingNews.message.map(Keys.Ticker -> _).toMap,
ttl = BreakingNewsTtl
)
}