feat: send push notification on invite to invited user and etc

This commit is contained in:
AndSDev 2023-11-07 12:46:53 +00:00 committed by strawberry
parent 6958c720d0
commit d13e3827ce

View file

@ -320,12 +320,25 @@ impl Service {
let mut notifies = Vec::new(); let mut notifies = Vec::new();
let mut highlights = Vec::new(); let mut highlights = Vec::new();
for user in services() let mut push_target = services()
.rooms .rooms
.state_cache .state_cache
.get_our_real_users(&pdu.room_id)? .get_our_real_users(&pdu.room_id)?;
.iter()
{ if pdu.kind == TimelineEventType::RoomMember {
if let Some(state_key) = &pdu.state_key {
let target_user_id = UserId::parse(state_key.clone())
.expect("This state_key was previously validated");
if !push_target.contains(&target_user_id) {
let mut target = push_target.as_ref().clone();
target.insert(target_user_id);
push_target = Arc::new(target);
}
}
}
for user in push_target.iter() {
// Don't notify the user of their own events // Don't notify the user of their own events
if user == &pdu.sender { if user == &pdu.sender {
continue; continue;