Include invited rooms in the initial sync

This commit is contained in:
Mark Haines 2015-10-13 11:03:48 +01:00
parent f96b480670
commit ab9cf73258
2 changed files with 26 additions and 11 deletions

View file

@ -63,16 +63,10 @@ class JoinedSyncResult(collections.namedtuple("JoinedSyncResult", [
class InvitedSyncResult(collections.namedtuple("InvitedSyncResult", [
"room_id",
"invite_state",
"invite",
])):
__slots__ = []
def __nonzero__(self):
"""Make the result appear empty if there are no updates. This is used
to tell if room needs to be part of the sync result.
"""
return bool(self.invite_state)
class SyncResult(collections.namedtuple("SyncResult", [
"next_batch", # Token for the next sync
@ -166,6 +160,7 @@ class SyncHandler(BaseHandler):
)
joined = []
invited = []
for event in room_list:
if event.membership == Membership.JOIN:
room_sync = yield self.initial_sync_for_room(
@ -173,15 +168,16 @@ class SyncHandler(BaseHandler):
)
joined.append(room_sync)
elif event.membership == Membership.INVITE:
invite = yield self.store.get_event(event.event_id)
invited.append(InvitedSyncResult(
room_id=event.room_id,
invited_state=[event],
)
invite=invite,
))
defer.returnValue(SyncResult(
presence=presence,
joined=joined,
invited=[],
invited=invited,
next_batch=now_token,
))