private def breakingNewsAndroidNotification()

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