implement filter.room.include_leave for /sync

This commit is contained in:
Benjamin Lee 2024-05-16 16:38:13 -07:00
parent d69b88566a
commit c3cf97df7a
No known key found for this signature in database
GPG key ID: FB9624E2885D55A4

View file

@ -186,15 +186,21 @@ pub(crate) async fn sync_events_route(
}
let mut left_rooms = BTreeMap::new();
if filter.room.include_leave {
let mut all_left_rooms = Vec::new();
if let AllowDenyList::Allow(allow_set) = room_filter {
for &room_id in allow_set {
if services().rooms.state_cache.is_left(&sender_user, room_id)? {
if services()
.rooms
.state_cache
.is_left(&sender_user, room_id)?
{
all_left_rooms.push(room_id.to_owned());
}
}
} else {
for result in services().rooms.state_cache.rooms_left(&sender_user) {
for result in services().rooms.state_cache.rooms_left(&sender_user)
{
let (room_id, _) = result?;
if room_filter.allowed(&room_id) {
all_left_rooms.push(room_id);
@ -215,6 +221,7 @@ pub(crate) async fn sync_events_route(
)
.await?;
}
}
let mut invited_rooms = BTreeMap::new();
let mut all_invited_rooms = Vec::new();