From da902d321c475325942f7292d663cafcd445f2f3 Mon Sep 17 00:00:00 2001 From: Rens Rikkerink Date: Fri, 20 Apr 2018 16:17:00 +0200 Subject: [PATCH] Reduce data sent to the DAPI in GuildChannelsReorder (#537) This function currently has an issue where it sends too much data, causing Discord to reject the request as it believes you're trying to amend several fields by sending all of them. This change resolves that by creating a simplified version of the Channel struct that only sends the data required for reordering. --- restapi.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/restapi.go b/restapi.go index b80f8c9..e5ef9f8 100644 --- a/restapi.go +++ b/restapi.go @@ -935,7 +935,17 @@ func (s *Session) GuildChannelCreate(guildID, name string, ctype ChannelType) (s // channels : Updated channels. func (s *Session) GuildChannelsReorder(guildID string, channels []*Channel) (err error) { - _, err = s.RequestWithBucketID("PATCH", EndpointGuildChannels(guildID), channels, EndpointGuildChannels(guildID)) + data := make([]struct { + ID string `json:"id"` + Position int `json:"position"` + }, len(channels)) + + for i, c := range channels { + data[i].ID = c.ID + data[i].Position = c.Position + } + + _, err = s.RequestWithBucketID("PATCH", EndpointGuildChannels(guildID), data, EndpointGuildChannels(guildID)) return }