summary refs log tree commit diff
path: root/synapse/rest/client
diff options
context:
space:
mode:
authorMark Haines <mark.haines@matrix.org>2015-10-13 11:03:48 +0100
committerMark Haines <mark.haines@matrix.org>2015-10-13 11:03:48 +0100
commitab9cf732585244781ba67f4bb4c235ded3d4661a (patch)
tree5c4a2dd1289ee0906928ca66926d73ca230cc0e1 /synapse/rest/client
parentMerge branch 'develop' into markjh/v2_sync_api (diff)
downloadsynapse-ab9cf732585244781ba67f4bb4c235ded3d4661a.tar.xz
Include invited rooms in the initial sync
Diffstat (limited to 'synapse/rest/client')
-rw-r--r--synapse/rest/client/v2_alpha/sync.py21
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 = {}