Browse Source

Swap to using RESTful role add/remove endpoints

pull/11/head
Andrei 8 years ago
parent
commit
d80e3c4c57
  1. 6
      disco/api/client.py
  2. 2
      disco/api/http.py
  3. 6
      disco/types/guild.py

6
disco/api/client.py

@ -216,6 +216,12 @@ class APIClient(LoggingClass):
def guilds_members_modify(self, guild, member, **kwargs): def guilds_members_modify(self, guild, member, **kwargs):
self.http(Routes.GUILDS_MEMBERS_MODIFY, dict(guild=guild, member=member), json=kwargs) self.http(Routes.GUILDS_MEMBERS_MODIFY, dict(guild=guild, member=member), json=kwargs)
def guilds_members_roles_add(self, guild, member, role):
self.http(Routes.GUILDS_MEMBERS_ROLES_ADD, dict(guild=guild, member=member, role=role))
def guilds_members_roles_remove(self, guild, member, role):
self.http(Routes.GUILDS_MEMBERS_ROLES_REMOVE, dict(guild=guild, member=member, role=role))
def guilds_members_me_nick(self, guild, nick): def guilds_members_me_nick(self, guild, nick):
self.http(Routes.GUILDS_MEMBERS_ME_NICK, dict(guild=guild), json={'nick': nick}) self.http(Routes.GUILDS_MEMBERS_ME_NICK, dict(guild=guild), json={'nick': nick})

2
disco/api/http.py

@ -71,6 +71,8 @@ class Routes(object):
GUILDS_MEMBERS_LIST = (HTTPMethod.GET, GUILDS + '/members') GUILDS_MEMBERS_LIST = (HTTPMethod.GET, GUILDS + '/members')
GUILDS_MEMBERS_GET = (HTTPMethod.GET, GUILDS + '/members/{member}') GUILDS_MEMBERS_GET = (HTTPMethod.GET, GUILDS + '/members/{member}')
GUILDS_MEMBERS_MODIFY = (HTTPMethod.PATCH, GUILDS + '/members/{member}') GUILDS_MEMBERS_MODIFY = (HTTPMethod.PATCH, GUILDS + '/members/{member}')
GUILDS_MEMBERS_ROLES_ADD = (HTTPMethod.PUT, GUILDS + '/members/{member}/roles/{role}')
GUILDS_MEMBERS_ROLES_REMOVE = (HTTPMethod.DELETE, GUILDS + '/members/{member}/roles/{role}')
GUILDS_MEMBERS_ME_NICK = (HTTPMethod.PATCH, GUILDS + '/members/@me/nick') GUILDS_MEMBERS_ME_NICK = (HTTPMethod.PATCH, GUILDS + '/members/@me/nick')
GUILDS_MEMBERS_KICK = (HTTPMethod.DELETE, GUILDS + '/members/{member}') GUILDS_MEMBERS_KICK = (HTTPMethod.DELETE, GUILDS + '/members/{member}')
GUILDS_BANS_LIST = (HTTPMethod.GET, GUILDS + '/bans') GUILDS_BANS_LIST = (HTTPMethod.GET, GUILDS + '/bans')

6
disco/types/guild.py

@ -177,8 +177,10 @@ class GuildMember(SlottedModel):
self.client.api.guilds_members_modify(self.guild.id, self.user.id, nick=nickname or '') self.client.api.guilds_members_modify(self.guild.id, self.user.id, nick=nickname or '')
def add_role(self, role): def add_role(self, role):
roles = self.roles + [role.id] self.client.api.guilds_members_roles_add(self.guild.id, self.user.id, to_snowflake(role))
self.client.api.guilds_members_modify(self.guild.id, self.user.id, roles=roles)
def remove_role(self, role):
self.clients.api.guilds_members_roles_remove(self.guild.id, self.user.id, to_snowflake(role))
@cached_property @cached_property
def owner(self): def owner(self):

Loading…
Cancel
Save