forked from MirrorHub/synapse
Comments
This commit is contained in:
parent
6027b1992f
commit
3431ec55dc
2 changed files with 88 additions and 103 deletions
|
@ -474,6 +474,8 @@ class TransportLayerClient(object):
|
|||
|
||||
@log_function
|
||||
def get_group_profile(self, destination, group_id, requester_user_id):
|
||||
"""Get a group profile
|
||||
"""
|
||||
path = PREFIX + "/groups/%s/profile" % (group_id,)
|
||||
|
||||
return self.client.get_json(
|
||||
|
@ -485,6 +487,8 @@ class TransportLayerClient(object):
|
|||
|
||||
@log_function
|
||||
def get_group_summary(self, destination, group_id, requester_user_id):
|
||||
"""Get a group summary
|
||||
"""
|
||||
path = PREFIX + "/groups/%s/summary" % (group_id,)
|
||||
|
||||
return self.client.get_json(
|
||||
|
@ -496,6 +500,8 @@ class TransportLayerClient(object):
|
|||
|
||||
@log_function
|
||||
def get_rooms_in_group(self, destination, group_id, requester_user_id):
|
||||
"""Get all rooms in a group
|
||||
"""
|
||||
path = PREFIX + "/groups/%s/rooms" % (group_id,)
|
||||
|
||||
return self.client.get_json(
|
||||
|
@ -507,6 +513,8 @@ class TransportLayerClient(object):
|
|||
|
||||
def add_room_to_group(self, destination, group_id, requester_user_id, room_id,
|
||||
content):
|
||||
"""Add a room to a group
|
||||
"""
|
||||
path = PREFIX + "/groups/%s/room/%s" % (group_id, room_id,)
|
||||
|
||||
return self.client.post_json(
|
||||
|
@ -519,6 +527,8 @@ class TransportLayerClient(object):
|
|||
|
||||
@log_function
|
||||
def get_users_in_group(self, destination, group_id, requester_user_id):
|
||||
"""Get users in a group
|
||||
"""
|
||||
path = PREFIX + "/groups/%s/users" % (group_id,)
|
||||
|
||||
return self.client.get_json(
|
||||
|
@ -530,6 +540,8 @@ class TransportLayerClient(object):
|
|||
|
||||
@log_function
|
||||
def accept_group_invite(self, destination, group_id, user_id, content):
|
||||
"""Accept a group invite
|
||||
"""
|
||||
path = PREFIX + "/groups/%s/users/%s/accept_invite" % (group_id, user_id)
|
||||
|
||||
return self.client.post_json(
|
||||
|
@ -541,6 +553,8 @@ class TransportLayerClient(object):
|
|||
|
||||
@log_function
|
||||
def invite_to_group(self, destination, group_id, user_id, requester_user_id, content):
|
||||
"""Invite a user to a group
|
||||
"""
|
||||
path = PREFIX + "/groups/%s/users/%s/invite" % (group_id, user_id)
|
||||
|
||||
return self.client.post_json(
|
||||
|
@ -569,6 +583,8 @@ class TransportLayerClient(object):
|
|||
@log_function
|
||||
def remove_user_from_group(self, destination, group_id, requester_user_id,
|
||||
user_id, content):
|
||||
"""Remove a user fron a group
|
||||
"""
|
||||
path = PREFIX + "/groups/%s/users/%s/remove" % (group_id, user_id)
|
||||
|
||||
return self.client.post_json(
|
||||
|
@ -613,6 +629,8 @@ class TransportLayerClient(object):
|
|||
@log_function
|
||||
def update_group_summary_room(self, destination, group_id, user_id, room_id,
|
||||
category_id, content):
|
||||
"""Update a room entry in a group summary
|
||||
"""
|
||||
if category_id:
|
||||
path = PREFIX + "/groups/%s/summary/categories/%s/rooms/%s" % (
|
||||
group_id, category_id, room_id,
|
||||
|
@ -631,6 +649,8 @@ class TransportLayerClient(object):
|
|||
@log_function
|
||||
def delete_group_summary_room(self, destination, group_id, user_id, room_id,
|
||||
category_id):
|
||||
"""Delete a room entry in a group summary
|
||||
"""
|
||||
if category_id:
|
||||
path = PREFIX + "/groups/%s/summary/categories/%s/rooms/%s" % (
|
||||
group_id, category_id, room_id,
|
||||
|
@ -647,6 +667,8 @@ class TransportLayerClient(object):
|
|||
|
||||
@log_function
|
||||
def get_group_categories(self, destination, group_id, requester_user_id):
|
||||
"""Get all categories in a group
|
||||
"""
|
||||
path = PREFIX + "/groups/%s/categories" % (group_id,)
|
||||
|
||||
return self.client.get_json(
|
||||
|
@ -658,6 +680,8 @@ class TransportLayerClient(object):
|
|||
|
||||
@log_function
|
||||
def get_group_category(self, destination, group_id, requester_user_id, category_id):
|
||||
"""Get category info in a group
|
||||
"""
|
||||
path = PREFIX + "/groups/%s/categories/%s" % (group_id, category_id,)
|
||||
|
||||
return self.client.get_json(
|
||||
|
@ -670,6 +694,8 @@ class TransportLayerClient(object):
|
|||
@log_function
|
||||
def update_group_category(self, destination, group_id, requester_user_id, category_id,
|
||||
content):
|
||||
"""Update a category in a group
|
||||
"""
|
||||
path = PREFIX + "/groups/%s/categories/%s" % (group_id, category_id,)
|
||||
|
||||
return self.client.post_json(
|
||||
|
@ -683,6 +709,8 @@ class TransportLayerClient(object):
|
|||
@log_function
|
||||
def delete_group_category(self, destination, group_id, requester_user_id,
|
||||
category_id):
|
||||
"""Delete a category in a group
|
||||
"""
|
||||
path = PREFIX + "/groups/%s/categories/%s" % (group_id, category_id,)
|
||||
|
||||
return self.client.delete_json(
|
||||
|
@ -694,6 +722,8 @@ class TransportLayerClient(object):
|
|||
|
||||
@log_function
|
||||
def get_group_roles(self, destination, group_id, requester_user_id):
|
||||
"""Get all roles in a group
|
||||
"""
|
||||
path = PREFIX + "/groups/%s/roles" % (group_id,)
|
||||
|
||||
return self.client.get_json(
|
||||
|
@ -705,6 +735,8 @@ class TransportLayerClient(object):
|
|||
|
||||
@log_function
|
||||
def get_group_role(self, destination, group_id, requester_user_id, role_id):
|
||||
"""Get a roles info
|
||||
"""
|
||||
path = PREFIX + "/groups/%s/roles/%s" % (group_id, role_id,)
|
||||
|
||||
return self.client.get_json(
|
||||
|
@ -717,6 +749,8 @@ class TransportLayerClient(object):
|
|||
@log_function
|
||||
def update_group_role(self, destination, group_id, requester_user_id, role_id,
|
||||
content):
|
||||
"""Update a role in a group
|
||||
"""
|
||||
path = PREFIX + "/groups/%s/roles/%s" % (group_id, role_id,)
|
||||
|
||||
return self.client.post_json(
|
||||
|
@ -729,6 +763,8 @@ class TransportLayerClient(object):
|
|||
|
||||
@log_function
|
||||
def delete_group_role(self, destination, group_id, requester_user_id, role_id):
|
||||
"""Delete a role in a group
|
||||
"""
|
||||
path = PREFIX + "/groups/%s/roles/%s" % (group_id, role_id,)
|
||||
|
||||
return self.client.delete_json(
|
||||
|
@ -741,6 +777,8 @@ class TransportLayerClient(object):
|
|||
@log_function
|
||||
def update_group_summary_user(self, destination, group_id, requester_user_id,
|
||||
user_id, role_id, content):
|
||||
"""Update a users entry in a group
|
||||
"""
|
||||
if role_id:
|
||||
path = PREFIX + "/groups/%s/summary/roles/%s/users/%s" % (
|
||||
group_id, role_id, user_id,
|
||||
|
@ -759,6 +797,8 @@ class TransportLayerClient(object):
|
|||
@log_function
|
||||
def delete_group_summary_user(self, destination, group_id, requester_user_id,
|
||||
user_id, role_id):
|
||||
"""Delete a users entry in a group
|
||||
"""
|
||||
if role_id:
|
||||
path = PREFIX + "/groups/%s/summary/roles/%s/users/%s" % (
|
||||
group_id, role_id, user_id,
|
||||
|
|
|
@ -26,6 +26,8 @@ logger = logging.getLogger(__name__)
|
|||
|
||||
|
||||
class GroupServlet(RestServlet):
|
||||
"""Get the group profile
|
||||
"""
|
||||
PATTERNS = client_v2_patterns("/groups/(?P<group_id>[^/]*)/profile$")
|
||||
|
||||
def __init__(self, hs):
|
||||
|
@ -45,6 +47,8 @@ class GroupServlet(RestServlet):
|
|||
|
||||
|
||||
class GroupSummaryServlet(RestServlet):
|
||||
"""Get the full group summary
|
||||
"""
|
||||
PATTERNS = client_v2_patterns("/groups/(?P<group_id>[^/]*)/summary$")
|
||||
|
||||
def __init__(self, hs):
|
||||
|
@ -63,69 +67,17 @@ class GroupSummaryServlet(RestServlet):
|
|||
defer.returnValue((200, get_group_summary))
|
||||
|
||||
|
||||
class GroupSummaryRoomsServlet(RestServlet):
|
||||
PATTERNS = client_v2_patterns("/groups/(?P<group_id>[^/]*)/summary/rooms$")
|
||||
|
||||
def __init__(self, hs):
|
||||
super(GroupSummaryServlet, self).__init__()
|
||||
self.auth = hs.get_auth()
|
||||
self.clock = hs.get_clock()
|
||||
self.groups_handler = hs.get_groups_local_handler()
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def on_GET(self, request, group_id):
|
||||
requester = yield self.auth.get_user_by_req(request)
|
||||
user_id = requester.user.to_string()
|
||||
|
||||
get_group_summary = yield self.groups_handler.get_group_summary(group_id, user_id)
|
||||
|
||||
defer.returnValue((200, get_group_summary))
|
||||
|
||||
|
||||
class GroupSummaryRoomsDefaultCatServlet(RestServlet):
|
||||
PATTERNS = client_v2_patterns(
|
||||
"/groups/(?P<group_id>[^/]*)/summary/rooms/(?P<room_id>[^/]*)$"
|
||||
)
|
||||
|
||||
def __init__(self, hs):
|
||||
super(GroupSummaryRoomsDefaultCatServlet, self).__init__()
|
||||
self.auth = hs.get_auth()
|
||||
self.clock = hs.get_clock()
|
||||
self.groups_handler = hs.get_groups_local_handler()
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def on_PUT(self, request, group_id, room_id):
|
||||
requester = yield self.auth.get_user_by_req(request)
|
||||
user_id = requester.user.to_string()
|
||||
|
||||
content = parse_json_object_from_request(request)
|
||||
resp = yield self.groups_handler.update_group_summary_room(
|
||||
group_id, user_id,
|
||||
room_id=room_id,
|
||||
category_id=None,
|
||||
content=content,
|
||||
)
|
||||
|
||||
defer.returnValue((200, resp))
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def on_DELETE(self, request, group_id, room_id):
|
||||
requester = yield self.auth.get_user_by_req(request)
|
||||
user_id = requester.user.to_string()
|
||||
|
||||
resp = yield self.groups_handler.delete_group_summary_room(
|
||||
group_id, user_id,
|
||||
room_id=room_id,
|
||||
category_id=None,
|
||||
)
|
||||
|
||||
defer.returnValue((200, resp))
|
||||
|
||||
|
||||
class GroupSummaryRoomsCatServlet(RestServlet):
|
||||
"""Update/delete a rooms entry in the summary.
|
||||
|
||||
Matches both:
|
||||
- /groups/:group/summary/rooms/:room_id
|
||||
- /groups/:group/summary/categories/:category/rooms/:room_id
|
||||
"""
|
||||
PATTERNS = client_v2_patterns(
|
||||
"/groups/(?P<group_id>[^/]*)/summary"
|
||||
"/categories/(?P<category_id>[^/]+)/rooms/(?P<room_id>[^/]+)$"
|
||||
"(/categories/(?P<category_id>[^/]+))?"
|
||||
"/rooms/(?P<room_id>[^/]*)$"
|
||||
)
|
||||
|
||||
def __init__(self, hs):
|
||||
|
@ -164,6 +116,8 @@ class GroupSummaryRoomsCatServlet(RestServlet):
|
|||
|
||||
|
||||
class GroupCategoryServlet(RestServlet):
|
||||
"""Get/add/update/delete a group category
|
||||
"""
|
||||
PATTERNS = client_v2_patterns(
|
||||
"/groups/(?P<group_id>[^/]*)/categories/(?P<category_id>[^/]+)$"
|
||||
)
|
||||
|
@ -214,6 +168,8 @@ class GroupCategoryServlet(RestServlet):
|
|||
|
||||
|
||||
class GroupCategoriesServlet(RestServlet):
|
||||
"""Get all group categories
|
||||
"""
|
||||
PATTERNS = client_v2_patterns(
|
||||
"/groups/(?P<group_id>[^/]*)/categories/$"
|
||||
)
|
||||
|
@ -237,6 +193,8 @@ class GroupCategoriesServlet(RestServlet):
|
|||
|
||||
|
||||
class GroupRoleServlet(RestServlet):
|
||||
"""Get/add/update/delete a group role
|
||||
"""
|
||||
PATTERNS = client_v2_patterns(
|
||||
"/groups/(?P<group_id>[^/]*)/roles/(?P<role_id>[^/]+)$"
|
||||
)
|
||||
|
@ -287,6 +245,8 @@ class GroupRoleServlet(RestServlet):
|
|||
|
||||
|
||||
class GroupRolesServlet(RestServlet):
|
||||
"""Get all group roles
|
||||
"""
|
||||
PATTERNS = client_v2_patterns(
|
||||
"/groups/(?P<group_id>[^/]*)/roles/$"
|
||||
)
|
||||
|
@ -309,50 +269,17 @@ class GroupRolesServlet(RestServlet):
|
|||
defer.returnValue((200, category))
|
||||
|
||||
|
||||
class GroupSummaryUsersDefaultRoleServlet(RestServlet):
|
||||
PATTERNS = client_v2_patterns(
|
||||
"/groups/(?P<group_id>[^/]*)/summary/users/(?P<user_id>[^/]*)$"
|
||||
)
|
||||
|
||||
def __init__(self, hs):
|
||||
super(GroupSummaryUsersDefaultRoleServlet, self).__init__()
|
||||
self.auth = hs.get_auth()
|
||||
self.clock = hs.get_clock()
|
||||
self.groups_handler = hs.get_groups_local_handler()
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def on_PUT(self, request, group_id, user_id):
|
||||
requester = yield self.auth.get_user_by_req(request)
|
||||
requester_user_id = requester.user.to_string()
|
||||
|
||||
content = parse_json_object_from_request(request)
|
||||
resp = yield self.groups_handler.update_group_summary_user(
|
||||
group_id, requester_user_id,
|
||||
user_id=user_id,
|
||||
role_id=None,
|
||||
content=content,
|
||||
)
|
||||
|
||||
defer.returnValue((200, resp))
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def on_DELETE(self, request, group_id, user_id):
|
||||
requester = yield self.auth.get_user_by_req(request)
|
||||
requester_user_id = requester.user.to_string()
|
||||
|
||||
resp = yield self.groups_handler.delete_group_summary_user(
|
||||
group_id, requester_user_id,
|
||||
user_id=user_id,
|
||||
role_id=None,
|
||||
)
|
||||
|
||||
defer.returnValue((200, resp))
|
||||
|
||||
|
||||
class GroupSummaryUsersRoleServlet(RestServlet):
|
||||
"""Update/delete a user's entry in the summary.
|
||||
|
||||
Matches both:
|
||||
- /groups/:group/summary/users/:room_id
|
||||
- /groups/:group/summary/roles/:role/users/:user_id
|
||||
"""
|
||||
PATTERNS = client_v2_patterns(
|
||||
"/groups/(?P<group_id>[^/]*)/summary"
|
||||
"/roles/(?P<role_id>[^/]+)/users/(?P<user_id>[^/]+)$"
|
||||
"(/roles/(?P<role_id>[^/]+))?"
|
||||
"/users/(?P<user_id>[^/]*)$"
|
||||
)
|
||||
|
||||
def __init__(self, hs):
|
||||
|
@ -391,6 +318,8 @@ class GroupSummaryUsersRoleServlet(RestServlet):
|
|||
|
||||
|
||||
class GroupRoomServlet(RestServlet):
|
||||
"""Get all rooms in a group
|
||||
"""
|
||||
PATTERNS = client_v2_patterns("/groups/(?P<group_id>[^/]*)/rooms$")
|
||||
|
||||
def __init__(self, hs):
|
||||
|
@ -410,6 +339,8 @@ class GroupRoomServlet(RestServlet):
|
|||
|
||||
|
||||
class GroupUsersServlet(RestServlet):
|
||||
"""Get all users in a group
|
||||
"""
|
||||
PATTERNS = client_v2_patterns("/groups/(?P<group_id>[^/]*)/users$")
|
||||
|
||||
def __init__(self, hs):
|
||||
|
@ -429,6 +360,8 @@ class GroupUsersServlet(RestServlet):
|
|||
|
||||
|
||||
class GroupCreateServlet(RestServlet):
|
||||
"""Create a group
|
||||
"""
|
||||
PATTERNS = client_v2_patterns("/create_group$")
|
||||
|
||||
def __init__(self, hs):
|
||||
|
@ -454,6 +387,8 @@ class GroupCreateServlet(RestServlet):
|
|||
|
||||
|
||||
class GroupAdminRoomsServlet(RestServlet):
|
||||
"""Add a room to the group
|
||||
"""
|
||||
PATTERNS = client_v2_patterns(
|
||||
"/groups/(?P<group_id>[^/]*)/admin/rooms/(?P<room_id>[^/]*)$"
|
||||
)
|
||||
|
@ -476,6 +411,8 @@ class GroupAdminRoomsServlet(RestServlet):
|
|||
|
||||
|
||||
class GroupAdminUsersInviteServlet(RestServlet):
|
||||
"""Invite a user to the group
|
||||
"""
|
||||
PATTERNS = client_v2_patterns(
|
||||
"/groups/(?P<group_id>[^/]*)/admin/users/invite/(?P<user_id>[^/]*)$"
|
||||
)
|
||||
|
@ -503,6 +440,8 @@ class GroupAdminUsersInviteServlet(RestServlet):
|
|||
|
||||
|
||||
class GroupAdminUsersKickServlet(RestServlet):
|
||||
"""Kick a user from the group
|
||||
"""
|
||||
PATTERNS = client_v2_patterns(
|
||||
"/groups/(?P<group_id>[^/]*)/admin/users/remove/(?P<user_id>[^/]*)$"
|
||||
)
|
||||
|
@ -527,6 +466,8 @@ class GroupAdminUsersKickServlet(RestServlet):
|
|||
|
||||
|
||||
class GroupSelfLeaveServlet(RestServlet):
|
||||
"""Leave a joined group
|
||||
"""
|
||||
PATTERNS = client_v2_patterns(
|
||||
"/groups/(?P<group_id>[^/]*)/self/leave$"
|
||||
)
|
||||
|
@ -551,6 +492,8 @@ class GroupSelfLeaveServlet(RestServlet):
|
|||
|
||||
|
||||
class GroupSelfJoinServlet(RestServlet):
|
||||
"""Attempt to join a group, or knock
|
||||
"""
|
||||
PATTERNS = client_v2_patterns(
|
||||
"/groups/(?P<group_id>[^/]*)/self/join$"
|
||||
)
|
||||
|
@ -575,6 +518,8 @@ class GroupSelfJoinServlet(RestServlet):
|
|||
|
||||
|
||||
class GroupSelfAcceptInviteServlet(RestServlet):
|
||||
"""Accept a group invite
|
||||
"""
|
||||
PATTERNS = client_v2_patterns(
|
||||
"/groups/(?P<group_id>[^/]*)/self/accept_invite$"
|
||||
)
|
||||
|
@ -599,6 +544,8 @@ class GroupSelfAcceptInviteServlet(RestServlet):
|
|||
|
||||
|
||||
class GroupsForUserServlet(RestServlet):
|
||||
"""Get all groups the logged in user is joined to
|
||||
"""
|
||||
PATTERNS = client_v2_patterns(
|
||||
"/joined_groups$"
|
||||
)
|
||||
|
@ -632,11 +579,9 @@ def register_servlets(hs, http_server):
|
|||
GroupSelfJoinServlet(hs).register(http_server)
|
||||
GroupSelfAcceptInviteServlet(hs).register(http_server)
|
||||
GroupsForUserServlet(hs).register(http_server)
|
||||
GroupSummaryRoomsDefaultCatServlet(hs).register(http_server)
|
||||
GroupCategoryServlet(hs).register(http_server)
|
||||
GroupCategoriesServlet(hs).register(http_server)
|
||||
GroupSummaryRoomsCatServlet(hs).register(http_server)
|
||||
GroupRoleServlet(hs).register(http_server)
|
||||
GroupRolesServlet(hs).register(http_server)
|
||||
GroupSummaryUsersDefaultRoleServlet(hs).register(http_server)
|
||||
GroupSummaryUsersRoleServlet(hs).register(http_server)
|
||||
|
|
Loading…
Reference in a new issue