Compare commits

...

2 Commits

Author SHA1 Message Date
Will Hunt
12ee70c0b9 Move path to something more in keeping with /joined_rooms 2019-11-15 01:39:26 +00:00
Half-Shot
7ab9f44b5a Add many joined members Servlet 2019-11-15 01:37:31 +00:00

View File

@@ -845,6 +845,32 @@ class SearchRestServlet(RestServlet):
return 200, results
class JoinedManyRoomMemberListRestServlet(RestServlet):
PATTERNS = client_patterns("/joined_members$", v1=True)
def __init__(self, hs):
super(JoinedManyRoomMemberListRestServlet, self).__init__()
self.message_handler = hs.get_message_handler()
self.auth = hs.get_auth()
async def on_POST(self, request):
requester = await self.auth.get_user_by_req(request)
content = parse_json_object_from_request(request)
if content.get("rooms", None) is None:
raise SynapseError(400, "'rooms' not given in request body.", errcode=Codes.BAD_JSON)
result = {}
for room_id in set(content["rooms"]):
if not isinstance(room_id, str):
raise SynapseError(400, "Invalid room_id given.", errcode=Codes.BAD_JSON)
result[room_id] = await self.message_handler.get_joined_members(
requester, room_id
)
return 200, {"rooms": result}
class JoinedRoomsRestServlet(RestServlet):
PATTERNS = client_patterns("/joined_rooms$", v1=True)
@@ -900,6 +926,7 @@ def register_servlets(hs, http_server):
RoomCreateRestServlet(hs).register(http_server)
RoomMemberListRestServlet(hs).register(http_server)
JoinedRoomMemberListRestServlet(hs).register(http_server)
JoinedManyRoomMemberListRestServlet(hs).register(http_server)
RoomMessageListRestServlet(hs).register(http_server)
JoinRoomAliasServlet(hs).register(http_server)
RoomForgetRestServlet(hs).register(http_server)