diff options
| author | Rapptz <[email protected]> | 2015-10-17 17:54:16 -0400 |
|---|---|---|
| committer | Rapptz <[email protected]> | 2015-10-17 17:54:16 -0400 |
| commit | e2af5d545a389c7abba492ebefb5deaf8f8514d3 (patch) | |
| tree | a34c5ee95f77f14355c0dae5e2f5bee17e415008 | |
| parent | Change Client.edit_role to be less stateful. (diff) | |
| download | discord.py-e2af5d545a389c7abba492ebefb5deaf8f8514d3.tar.xz discord.py-e2af5d545a389c7abba492ebefb5deaf8f8514d3.zip | |
Add Client.create_role to create a server-wide role.
| -rw-r--r-- | discord/client.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/discord/client.py b/discord/client.py index c73db4de..284a3faa 100644 --- a/discord/client.py +++ b/discord/client.py @@ -1080,6 +1080,28 @@ class Client(object): log.debug(request_logging_format.format(response=response, name='delete_role')) return is_response_successful(response) + def create_role(self, server, **fields): + """Creates a :class:`Role`. + + The fields parameter is the same as :func:`edit_role`. + + :return: The :class:`Role` if creation was successful, None otherwise. + """ + + url = '{0}/{1.id}/roles'.format(endpoints.SERVERS, server) + response = requests.post(url, headers=self.headers) + log.debug(request_logging_format.format(response=response, name='create_role')) + + if is_response_successful(response): + data = response.json() + role = Role(**data) + if self.edit_role(server, role, **fields): + # we have to call edit because you can't pass a payload to the + # http request currently. + return role + + return None + def change_status(self, game_id=None, idle=False): """Changes the client's status. |