From e836b7a5008014571541f717cb248f9089acbe0c Mon Sep 17 00:00:00 2001 From: Chris Rhodes Date: Mon, 28 Dec 2015 20:36:43 -0800 Subject: [PATCH 1/4] Rename GuildBanAdd to GuildBanCreate --- restapi.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/restapi.go b/restapi.go index 8403e92..a906eb8 100644 --- a/restapi.go +++ b/restapi.go @@ -275,10 +275,10 @@ func (s *Session) GuildBans(guildID string) (st []User, err error) { return } -// GuildBanAdd bans the given user from the given guild. +// GuildBanCreate bans the given user from the given guild. // guildID : The ID of a Guild. // userID : The ID of a User -func (s *Session) GuildBanAdd(guildID, userID string) (err error) { +func (s *Session) GuildBanCreate(guildID, userID string) (err error) { _, err = s.Request("PUT", GUILD_BAN(guildID, userID), nil) return From 093f97f2bc0cacaa71a7e6df0e088142f103b981 Mon Sep 17 00:00:00 2001 From: Chris Rhodes Date: Mon, 28 Dec 2015 20:43:27 -0800 Subject: [PATCH 2/4] Implement GuildBanCreateAndDeleteComments --- restapi.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/restapi.go b/restapi.go index a906eb8..8faafec 100644 --- a/restapi.go +++ b/restapi.go @@ -284,6 +284,17 @@ func (s *Session) GuildBanCreate(guildID, userID string) (err error) { return } +// GuildBanCreateAndDeleteComments bans the given user from the given guild +// and deletes all of their comments younger than a number of days. +// guildID : The ID of a Guild. +// userID : The ID of a User +// days : The number of days of comments to delete +func (s *Session) GuildBanCreateAndDeleteComments(guildID, userID string, days int) (err error) { + + _, err = s.Request("PUT", fmt.Sprintf("%v?delete-message-days=%v", GUILD_BAN(guildID, userID), days), nil) + return +} + // GuildBanDelete removes the given user from the guild bans // guildID : The ID of a Guild. // userID : The ID of a User From f242890ade5d61d458a03f40fa311fb23bbb390e Mon Sep 17 00:00:00 2001 From: Chris Rhodes Date: Mon, 28 Dec 2015 21:00:38 -0800 Subject: [PATCH 3/4] Update printf types for GuildBanCreateAndDeleteComments. --- restapi.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/restapi.go b/restapi.go index 8faafec..3aed246 100644 --- a/restapi.go +++ b/restapi.go @@ -291,7 +291,7 @@ func (s *Session) GuildBanCreate(guildID, userID string) (err error) { // days : The number of days of comments to delete func (s *Session) GuildBanCreateAndDeleteComments(guildID, userID string, days int) (err error) { - _, err = s.Request("PUT", fmt.Sprintf("%v?delete-message-days=%v", GUILD_BAN(guildID, userID), days), nil) + _, err = s.Request("PUT", fmt.Sprintf("%s?delete-message-days=%d", GUILD_BAN(guildID, userID), days), nil) return } From 6400f08039698ba3116e0a4745460ce10f5f24bd Mon Sep 17 00:00:00 2001 From: Chris Rhodes Date: Tue, 29 Dec 2015 10:29:10 -0800 Subject: [PATCH 4/4] Modify GuildBanCreate to have a days param. Clean up ChannelMessage. --- restapi.go | 50 +++++++++++++++++++++++--------------------------- 1 file changed, 23 insertions(+), 27 deletions(-) diff --git a/restapi.go b/restapi.go index 3aed246..52c8bfe 100644 --- a/restapi.go +++ b/restapi.go @@ -16,6 +16,8 @@ import ( "fmt" "io/ioutil" "net/http" + "net/url" + "strconv" "time" ) @@ -119,7 +121,7 @@ func (s *Session) Login(email string, password string) (token string, err error) // even use. func (s *Session) Logout() (err error) { - // _, err = s.Request("POST", LOGOUT, fmt.Sprintf(`{"token": "%s"}`, s.Token)) + // _, err = s.Request("POST", LOGOUT, fmt.Sprintf(`{"token": "%s"}`, s.Token)) return } @@ -278,20 +280,16 @@ func (s *Session) GuildBans(guildID string) (st []User, err error) { // GuildBanCreate bans the given user from the given guild. // guildID : The ID of a Guild. // userID : The ID of a User -func (s *Session) GuildBanCreate(guildID, userID string) (err error) { +// days : The number of days of previous comments to delete. +func (s *Session) GuildBanCreate(guildID, userID string, days int) (err error) { - _, err = s.Request("PUT", GUILD_BAN(guildID, userID), nil) - return -} + uri := GUILD_BAN(guildID, userID) -// GuildBanCreateAndDeleteComments bans the given user from the given guild -// and deletes all of their comments younger than a number of days. -// guildID : The ID of a Guild. -// userID : The ID of a User -// days : The number of days of comments to delete -func (s *Session) GuildBanCreateAndDeleteComments(guildID, userID string, days int) (err error) { + if days > 0 { + uri = fmt.Sprintf("%s?delete-message-days=%d", uri, days) + } - _, err = s.Request("PUT", fmt.Sprintf("%s?delete-message-days=%d", GUILD_BAN(guildID, userID), days), nil) + _, err = s.Request("PUT", uri, nil) return } @@ -469,29 +467,27 @@ func (s *Session) ChannelTyping(channelID string) (err error) { // afterID : If provided all messages returned will be after given ID. func (s *Session) ChannelMessages(channelID string, limit int, beforeID int, afterID int) (st []Message, err error) { - var urlStr string + uri := CHANNEL_MESSAGES(channelID) + v := url.Values{} if limit > 0 { - urlStr = fmt.Sprintf("?limit=%d", limit) + v.Set("limit", strconv.Itoa(limit)) } - if afterID > 0 { - if urlStr != "" { - urlStr = urlStr + fmt.Sprintf("&after=%d", afterID) - } else { - urlStr = fmt.Sprintf("?after=%d", afterID) - } + v.Set("after", strconv.Itoa(afterID)) } - if beforeID > 0 { - if urlStr != "" { - urlStr = urlStr + fmt.Sprintf("&before=%d", beforeID) - } else { - urlStr = fmt.Sprintf("?before=%d", beforeID) - } + v.Set("before", strconv.Itoa(beforeID)) + } + if len(v) > 0 { + uri = fmt.Sprintf("%s?%s", uri, v.Encode()) + } + + body, err := s.Request("GET", uri, nil) + if err != nil { + return } - body, err := s.Request("GET", CHANNEL_MESSAGES(channelID)+urlStr, nil) err = json.Unmarshal(body, &st) return }