package Ġjp . ky u uki . watch ing . spring . component Ċ Ċ import Ġcom . google . firebase . messaging . Firebase Messaging Ċ import Ġcom . google . firebase . messaging . Firebase Messaging Exception Ċ import Ġcom . google . firebase . messaging . Mult icast Message Ċ import Ġjp . ky u uki . watch ing . spring . model . Event Ċ import Ġjp . ky u uki . watch ing . spring . model . User Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġorg . springframework . stereotype . Component Ċ import Ġjava . text . SimpleDateFormat Ċ Ċ @ Component Ċ class ĠF cm Component () Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlogger Ġ= ĠLoggerFactory . getLogger ( F cm Component :: class . java ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġsdf Ġ= ĠSimpleDateFormat (" yyyy - MM - dd ' T ' HH : mm : ss XXX ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ å¤± æķ Ĺ ãģĹãģ¦ ãĤĤ ãĥŃãĤ° ãģ« åĩºåĬĽ ãģĻãĤĭ ãģ® ãģ¿ ĊĠĠĠ Ġfun Ġsend Add Event Notification ( to Users : ĠList < User >, Ġevent : ĠEvent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġregistration Tokens Ġ= Ġto Users . map NotNull Ġ{ Ġit . fc m Token Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( registration Tokens . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" No Ġregistration Token Ġfor Ġuser Ġ= Ġ$ to Users ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠMult icast Message . builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put Data (" id ", Ġevent . id . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put Data (" name ", Ġevent . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put Data (" created _ at ", Ġsdf . format ( event . createdAt )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put Data (" user _ id ", Ġevent . user . id . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. put Data (" user _ nickname ", Ġevent . user . nickname ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addAll Tokens ( registration Tokens ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠFirebase Messaging . getInstance (). send Mult icast ( message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . debug (" Successfully Ġsent Ġmessage : Ġ$ response ") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠFirebase Messaging Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error (" F cm Ġerror Ġe . message Ġ= Ġ${ e . message }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }