diff options
author | Erik Johnston <erik@matrix.org> | 2017-11-08 16:13:27 +0000 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2017-11-08 16:13:27 +0000 |
commit | e8814410ef682a1e277a1cfe6fda7268fd7a33d6 (patch) | |
tree | 56020619a56a2483ff69427aff5e4f223c8d7ade /synapse/rest | |
parent | Revert "Modify group room association API to allow modification of is_public" (diff) | |
download | synapse-e8814410ef682a1e277a1cfe6fda7268fd7a33d6.tar.xz |
Have an explicit API to update room config
Diffstat (limited to 'synapse/rest')
-rw-r--r-- | synapse/rest/client/v2_alpha/groups.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/synapse/rest/client/v2_alpha/groups.py b/synapse/rest/client/v2_alpha/groups.py index c97885cfc7..67f163e812 100644 --- a/synapse/rest/client/v2_alpha/groups.py +++ b/synapse/rest/client/v2_alpha/groups.py @@ -469,6 +469,33 @@ class GroupAdminRoomsServlet(RestServlet): defer.returnValue((200, result)) +class GroupAdminRoomsConfigServlet(RestServlet): + """Update the config of a room in a group + """ + PATTERNS = client_v2_patterns( + "/groups/(?P<group_id>[^/]*)/admin/rooms/(?P<room_id>[^/]*)" + "/config/(?P<config_key>[^/]*)$" + ) + + def __init__(self, hs): + super(GroupAdminRoomsConfigServlet, 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, config_key): + requester = yield self.auth.get_user_by_req(request) + requester_user_id = requester.user.to_string() + + content = parse_json_object_from_request(request) + result = yield self.groups_handler.update_room_in_group( + group_id, requester_user_id, room_id, config_key, content, + ) + + defer.returnValue((200, result)) + + class GroupAdminUsersInviteServlet(RestServlet): """Invite a user to the group """ |