@@ -81,16 +81,13 @@ async def _manage_firebase_batch_response(
8181 db = db ,
8282 )
8383 hyperion_error_logger .error (
84- """
85- Firebase: SenderId mismatch for notification '%s' (%s module) for %s/%s tokens (%s users) :
86- %s
87- """ ,
84+ "Firebase: SenderId mismatch for notification '%s' (%s module) for %s/%s tokens (%s users) : %s" ,
8885 message_content .title ,
8986 message_content .action_module ,
9087 len (mismatching_tokens ),
9188 response .success_count + response .failure_count ,
9289 len (usernames ),
93- "\n " .join (usernames ),
90+ ", " .join (usernames ),
9491 )
9592 hyperion_error_logger .info (
9693 f"{ response .failure_count } messages failed to be send, removing their tokens from the database." ,
@@ -140,7 +137,7 @@ async def _send_firebase_push_notification_by_tokens(
140137 ),
141138 )
142139
143- result = messaging .send_each_for_multicast (message )
140+ result : messaging . BatchResponse = messaging .send_each_for_multicast (message )
144141 except Exception :
145142 hyperion_error_logger .exception (
146143 "Notification: Unable to send firebase notification to tokens" ,
@@ -166,22 +163,34 @@ def _send_firebase_push_notification_by_topic(
166163 if not self .use_firebase :
167164 return
168165
169- topic = str (topic_id )
170- message = messaging .Message (
171- topic = topic ,
172- notification = messaging .Notification (
173- title = message_content .title ,
174- body = message_content .content ,
175- ),
176- )
177166 try :
178- messaging .send (message )
179- except messaging .FirebaseError :
167+ topic = str (topic_id )
168+ message = messaging .Message (
169+ topic = topic ,
170+ data = {"action_module" : message_content .action_module },
171+ notification = messaging .Notification (
172+ title = message_content .title ,
173+ body = message_content .content ,
174+ ),
175+ )
176+
177+ result : messaging .BatchResponse = messaging .send_each ([message ])
178+ except Exception :
180179 hyperion_error_logger .exception (
181180 f"Notification: Unable to send firebase notification for topic { topic } " ,
182181 )
183182 raise
184183
184+ if result .failure_count > 0 :
185+ hyperion_error_logger .error (
186+ "Firebase: Failed to send notification '%s' for topic %s (%s module) for %s/%s tokens" ,
187+ message_content .title ,
188+ topic ,
189+ message_content .action_module ,
190+ result .failure_count ,
191+ result .success_count + result .failure_count ,
192+ )
193+
185194 async def subscribe_tokens_to_topic (
186195 self ,
187196 topic_id : UUID ,
@@ -197,7 +206,10 @@ async def subscribe_tokens_to_topic(
197206 return
198207
199208 topic = str (topic_id )
200- response = messaging .subscribe_to_topic (tokens , topic )
209+ response : messaging .TopicManagementResponse = messaging .subscribe_to_topic (
210+ tokens ,
211+ topic ,
212+ )
201213 if response .failure_count > 0 :
202214 hyperion_error_logger .info (
203215 f"Notification: Failed to subscribe to topic { topic } due to { [error .reason for error in response .errors ]} " ,
0 commit comments