diff options
author | Erik Johnston <erik@matrix.org> | 2020-05-29 17:49:47 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-29 17:49:47 +0100 |
commit | cb495f526dcfb6ee985df1a284b1af32ea3c5599 (patch) | |
tree | d7820cef0be880ec95149305d4eddb368f293a22 /synapse/handlers | |
parent | Make inflight background metrics more efficient. (#7597) (diff) | |
download | synapse-cb495f526dcfb6ee985df1a284b1af32ea3c5599.tar.xz |
Fix 'FederationGroupsRoomsServlet' API when group has room server is not in. (#7599)
Diffstat (limited to 'synapse/handlers')
-rw-r--r-- | synapse/handlers/room_list.py | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/synapse/handlers/room_list.py b/synapse/handlers/room_list.py index e75dabcd77..4cbc02b0d0 100644 --- a/synapse/handlers/room_list.py +++ b/synapse/handlers/room_list.py @@ -253,10 +253,21 @@ class RoomListHandler(BaseHandler): """ result = {"room_id": room_id, "num_joined_members": num_joined_users} + if with_alias: + aliases = yield self.store.get_aliases_for_room( + room_id, on_invalidate=cache_context.invalidate + ) + if aliases: + result["aliases"] = aliases + current_state_ids = yield self.store.get_current_state_ids( room_id, on_invalidate=cache_context.invalidate ) + if not current_state_ids: + # We're not in the room, so may as well bail out here. + return result + event_map = yield self.store.get_events( [ event_id @@ -289,14 +300,7 @@ class RoomListHandler(BaseHandler): create_event = current_state.get((EventTypes.Create, "")) result["m.federate"] = create_event.content.get("m.federate", True) - if with_alias: - aliases = yield self.store.get_aliases_for_room( - room_id, on_invalidate=cache_context.invalidate - ) - if aliases: - result["aliases"] = aliases - - name_event = yield current_state.get((EventTypes.Name, "")) + name_event = current_state.get((EventTypes.Name, "")) if name_event: name = name_event.content.get("name", None) if name: |