diff options
author | Mark Haines <mark.haines@matrix.org> | 2015-10-13 11:03:48 +0100 |
---|---|---|
committer | Mark Haines <mark.haines@matrix.org> | 2015-10-13 11:03:48 +0100 |
commit | ab9cf732585244781ba67f4bb4c235ded3d4661a (patch) | |
tree | 5c4a2dd1289ee0906928ca66926d73ca230cc0e1 /synapse/rest/client/v2_alpha/sync.py | |
parent | Merge branch 'develop' into markjh/v2_sync_api (diff) | |
download | synapse-ab9cf732585244781ba67f4bb4c235ded3d4661a.tar.xz |
Include invited rooms in the initial sync
Diffstat (limited to 'synapse/rest/client/v2_alpha/sync.py')
-rw-r--r-- | synapse/rest/client/v2_alpha/sync.py | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/synapse/rest/client/v2_alpha/sync.py b/synapse/rest/client/v2_alpha/sync.py index 9b87879f51..399df9e772 100644 --- a/synapse/rest/client/v2_alpha/sync.py +++ b/synapse/rest/client/v2_alpha/sync.py @@ -132,13 +132,17 @@ class SyncRestServlet(RestServlet): sync_result.joined, filter, time_now, token_id ) + invited = self.encode_invited( + sync_result.invited, filter, time_now, token_id + ) + response_content = { "presence": self.encode_presence( sync_result.presence, filter, time_now ), "rooms": { "joined": joined, - "invited": {}, + "invited": invited, "archived": {}, }, "next_batch": sync_result.next_batch.to_string(), @@ -163,6 +167,21 @@ class SyncRestServlet(RestServlet): return joined + def encode_invited(self, rooms, filter, time_now, token_id): + invited = {} + for room in rooms: + invite = serialize_event( + room.invite, time_now, token_id=token_id, + event_format=format_event_for_client_v2_without_event_id, + ) + invited_state = invite.get("unsigned", {}).pop("invite_room_state", []) + invited_state.append(invite) + invited[room.room_id] = { + "invite_state": { "events": invited_state } + } + + return invited + @staticmethod def encode_room(room, filter, time_now, token_id): event_map = {} |