1
0
Fork 0
mirror of https://gitlab.com/famedly/conduit.git synced 2025-06-27 16:35:59 +00:00

Cleanly handle invalid rooms on hierarchy endpoint

This commit is contained in:
Nyaaori 2022-10-15 14:29:20 +02:00
parent 833d8f1b70
commit 03c02133a2
No known key found for this signature in database
GPG key ID: E7819C3ED4D1F82E

View file

@ -117,7 +117,9 @@ pub async fn get_hierarchy_route(
if skip == 0 { if skip == 0 {
if rooms_chunk.len() < limit { if rooms_chunk.len() < limit {
room_set.insert(room_id.clone()); room_set.insert(room_id.clone());
rooms_chunk.push(get_room_chunk(room_id, suggested_only, pdus).await?); if let Ok(chunk) = get_room_chunk(room_id, suggested_only, pdus).await {
rooms_chunk.push(chunk)
};
} }
} else { } else {
skip -= 1; skip -= 1;
@ -144,7 +146,7 @@ pub async fn get_hierarchy_route(
async fn get_room_chunk( async fn get_room_chunk(
room_id: OwnedRoomId, room_id: OwnedRoomId,
suggested_only: bool, suggested_only: bool,
phus: Vec<Arc<PduEvent>>, pdus: Vec<Arc<PduEvent>>,
) -> Result<SpaceHierarchyRoomsChunk> { ) -> Result<SpaceHierarchyRoomsChunk> {
Ok(SpaceHierarchyRoomsChunk { Ok(SpaceHierarchyRoomsChunk {
canonical_alias: services() canonical_alias: services()
@ -251,7 +253,7 @@ async fn get_room_chunk(
}) })
.ok() .ok()
.flatten(), .flatten(),
children_state: phus children_state: pdus
.into_iter() .into_iter()
.flat_map(|pdu| { .flat_map(|pdu| {
Some(HierarchySpaceChildEvent { Some(HierarchySpaceChildEvent {