Add left section to /keys/changes

This commit is contained in:
Erik Johnston 2017-09-08 14:44:36 +01:00
parent 53cc8ad35a
commit 69ef4987a6
3 changed files with 19 additions and 11 deletions

View File

@ -326,13 +326,23 @@ class DeviceHandler(BaseHandler):
possibly_changed.add(state_key) possibly_changed.add(state_key)
break break
users_who_share_room = yield self.store.get_users_who_share_room_with_user( if possibly_changed:
user_id users_who_share_room = yield self.store.get_users_who_share_room_with_user(
) user_id
)
# Take the intersection of the users whose devices may have changed # Take the intersection of the users whose devices may have changed
# and those that actually still share a room with the user # and those that actually still share a room with the user
defer.returnValue(users_who_share_room & possibly_changed) possibly_joined = possibly_changed & users_who_share_room
possibly_left = possibly_changed - users_who_share_room
else:
possibly_joined = []
possibly_left = []
defer.returnValue({
"changed": list(possibly_joined),
"left": list(possibly_left),
})
@defer.inlineCallbacks @defer.inlineCallbacks
def on_federation_query_user_devices(self, user_id): def on_federation_query_user_devices(self, user_id):

View File

@ -949,7 +949,7 @@ class SyncHandler(object):
newly_joined_rooms = [] newly_joined_rooms = []
room_entries = [] room_entries = []
invited = [] invited = []
for room_id, events in mem_change_events_by_room_id.items(): for room_id, events in mem_change_events_by_room_id.iteritems():
non_joins = [e for e in events if e.membership != Membership.JOIN] non_joins = [e for e in events if e.membership != Membership.JOIN]
has_join = len(non_joins) != len(events) has_join = len(non_joins) != len(events)

View File

@ -188,13 +188,11 @@ class KeyChangesServlet(RestServlet):
user_id = requester.user.to_string() user_id = requester.user.to_string()
changed = yield self.device_handler.get_user_ids_changed( results = yield self.device_handler.get_user_ids_changed(
user_id, from_token, user_id, from_token,
) )
defer.returnValue((200, { defer.returnValue((200, results))
"changed": list(changed),
}))
class OneTimeKeyServlet(RestServlet): class OneTimeKeyServlet(RestServlet):