feat: send push notification on invite to invited user and etc
This commit is contained in:
parent
6958c720d0
commit
d13e3827ce
1 changed files with 17 additions and 4 deletions
|
@ -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;
|
||||||
|
|
Loading…
Add table
Reference in a new issue