From b0188cd71e32cc9b3345253936c7eaf23cabcc69 Mon Sep 17 00:00:00 2001 From: Chris Rhodes Date: Wed, 27 Jan 2016 01:37:43 -0800 Subject: [PATCH 1/2] Support GuildMemberEdit api. --- restapi.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/restapi.go b/restapi.go index e41a0fc..358fc04 100644 --- a/restapi.go +++ b/restapi.go @@ -435,6 +435,27 @@ func (s *Session) GuildMemberDelete(guildID, userID string) (err error) { return } +// GuildMemberEdit edits the roles of a member. +// guildID : The ID of a Guild. +// userID : The ID of a User. +// roles : A list of roles to set on the member. +func (s *Session) GuildMemberEdit(guildID, userID string, roles []*Role) (err error) { + data := struct { + Roles []string `json:"roles"` + }{[]string{}} + + for _, r := range roles { + data.Roles = append(data.Roles, r.ID) + } + + _, err = s.Request("PATCH", GUILD_MEMBER(guildID, userID), data) + if err != nil { + return + } + + return +} + // GuildChannels returns an array of Channel structures for all channels of a // given guild. // guildID : The ID of a Guild. From 5aab9dc685d15b8aa849dd943f849fb23e34bc8b Mon Sep 17 00:00:00 2001 From: Chris Rhodes Date: Wed, 27 Jan 2016 09:45:14 -0800 Subject: [PATCH 2/2] Use an array of role ids --- restapi.go | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/restapi.go b/restapi.go index 358fc04..e3293a5 100644 --- a/restapi.go +++ b/restapi.go @@ -438,15 +438,11 @@ func (s *Session) GuildMemberDelete(guildID, userID string) (err error) { // GuildMemberEdit edits the roles of a member. // guildID : The ID of a Guild. // userID : The ID of a User. -// roles : A list of roles to set on the member. -func (s *Session) GuildMemberEdit(guildID, userID string, roles []*Role) (err error) { +// roles : A list of role ID's to set on the member. +func (s *Session) GuildMemberEdit(guildID, userID string, roles []string) (err error) { data := struct { Roles []string `json:"roles"` - }{[]string{}} - - for _, r := range roles { - data.Roles = append(data.Roles, r.ID) - } + }{roles} _, err = s.Request("PATCH", GUILD_MEMBER(guildID, userID), data) if err != nil {