mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-12-10 10:42:31 -05:00
Merge pull request #276 from matrix-org/markjh/history_for_rooms_that_have_been_left
SPEC-216: Allow users to view the history of rooms that they have left.
This commit is contained in:
commit
ee2d722f0f
9 changed files with 267 additions and 122 deletions
|
|
@ -26,14 +26,12 @@ class InitialSyncRestServlet(ClientV1RestServlet):
|
|||
@defer.inlineCallbacks
|
||||
def on_GET(self, request):
|
||||
user, _ = yield self.auth.get_user_by_req(request)
|
||||
with_feedback = "feedback" in request.args
|
||||
as_client_event = "raw" not in request.args
|
||||
pagination_config = PaginationConfig.from_request(request)
|
||||
handler = self.handlers.message_handler
|
||||
content = yield handler.snapshot_all_rooms(
|
||||
user_id=user.to_string(),
|
||||
pagin_config=pagination_config,
|
||||
feedback=with_feedback,
|
||||
as_client_event=as_client_event
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -290,12 +290,18 @@ class RoomMemberListRestServlet(ClientV1RestServlet):
|
|||
def on_GET(self, request, room_id):
|
||||
# TODO support Pagination stream API (limit/tokens)
|
||||
user, _ = yield self.auth.get_user_by_req(request)
|
||||
handler = self.handlers.room_member_handler
|
||||
members = yield handler.get_room_members_as_pagination_chunk(
|
||||
handler = self.handlers.message_handler
|
||||
events = yield handler.get_state_events(
|
||||
room_id=room_id,
|
||||
user_id=user.to_string())
|
||||
user_id=user.to_string(),
|
||||
)
|
||||
|
||||
for event in members["chunk"]:
|
||||
chunk = []
|
||||
|
||||
for event in events:
|
||||
if event["type"] != EventTypes.Member:
|
||||
continue
|
||||
chunk.append(event)
|
||||
# FIXME: should probably be state_key here, not user_id
|
||||
target_user = UserID.from_string(event["user_id"])
|
||||
# Presence is an optional cache; don't fail if we can't fetch it
|
||||
|
|
@ -308,7 +314,9 @@ class RoomMemberListRestServlet(ClientV1RestServlet):
|
|||
except:
|
||||
pass
|
||||
|
||||
defer.returnValue((200, members))
|
||||
defer.returnValue((200, {
|
||||
"chunk": chunk
|
||||
}))
|
||||
|
||||
|
||||
# TODO: Needs unit testing
|
||||
|
|
@ -321,14 +329,12 @@ class RoomMessageListRestServlet(ClientV1RestServlet):
|
|||
pagination_config = PaginationConfig.from_request(
|
||||
request, default_limit=10,
|
||||
)
|
||||
with_feedback = "feedback" in request.args
|
||||
as_client_event = "raw" not in request.args
|
||||
handler = self.handlers.message_handler
|
||||
msgs = yield handler.get_messages(
|
||||
room_id=room_id,
|
||||
user_id=user.to_string(),
|
||||
pagin_config=pagination_config,
|
||||
feedback=with_feedback,
|
||||
as_client_event=as_client_event
|
||||
)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue