|
|
|
@ -337,6 +337,35 @@ class RoomStateRestServlet(RestServlet): |
|
|
|
|
defer.returnValue((200, [])) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# TODO: Needs unit testing |
|
|
|
|
class RoomInitialSyncRestServlet(RestServlet): |
|
|
|
|
PATTERN = client_path_pattern("/rooms/(?P<room_id>[^/]*)/initialSync$") |
|
|
|
|
|
|
|
|
|
@defer.inlineCallbacks |
|
|
|
|
def on_GET(self, request, room_id): |
|
|
|
|
user = yield self.auth.get_user_by_req(request) |
|
|
|
|
# TODO: Get all the initial sync data for this room and return in the |
|
|
|
|
# same format as initial sync, that is: |
|
|
|
|
# { |
|
|
|
|
# membership: join, |
|
|
|
|
# messages: [ |
|
|
|
|
# chunk: [ msg events ], |
|
|
|
|
# start: s_tok, |
|
|
|
|
# end: e_tok |
|
|
|
|
# ], |
|
|
|
|
# room_id: foo, |
|
|
|
|
# state: [ |
|
|
|
|
# { state event } , { state event } |
|
|
|
|
# ] |
|
|
|
|
# } |
|
|
|
|
# Probably worth keeping the keys room_id and membership for parity with |
|
|
|
|
# /initialSync even though they must be joined to sync this and know the |
|
|
|
|
# room ID, so clients can reuse the same code (room_id and membership |
|
|
|
|
# are MANDATORY for /initialSync, so the code will expect it to be |
|
|
|
|
# there) |
|
|
|
|
defer.returnValue((200, {})) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class RoomTriggerBackfill(RestServlet): |
|
|
|
|
PATTERN = client_path_pattern("/rooms/(?P<room_id>[^/]*)/backfill$") |
|
|
|
|
|
|
|
|
@ -452,3 +481,4 @@ def register_servlets(hs, http_server): |
|
|
|
|
RoomSendEventRestServlet(hs).register(http_server) |
|
|
|
|
PublicRoomListRestServlet(hs).register(http_server) |
|
|
|
|
RoomStateRestServlet(hs).register(http_server) |
|
|
|
|
RoomInitialSyncRestServlet(hs).register(http_server) |
|
|
|
|