Add branch in room handler for left rooms.

Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
Jason Volk
2025-10-25 08:31:11 +00:00
parent a20ddcd586
commit af80482c04

View File

@@ -64,6 +64,25 @@ pub(super) async fn handle(
"Stale room shouldn't be in the window"
);
if *membership == Some(MembershipState::Leave) {
return Ok(Some(response::Room {
initial: roomsince.eq(&0).then_some(true),
lists: lists.clone(),
membership: membership.clone(),
prev_batch: Some(conn.next_batch.to_string().into()),
limited: true,
required_state: vec![
services
.state_accessor
.room_state_get(room_id, &StateEventType::RoomMember, sender_user.as_str())
.map_ok(Event::into_format)
.await?,
],
..Default::default()
}));
}
let is_invite = *membership == Some(MembershipState::Invite);
let default_details = (0_usize, HashSet::new());
let (timeline_limit, required_state) = lists