Merge pull request #199 from VagantemNumen/bulk-delete

Add bulk delete endpoint to rest api
This commit is contained in:
Bruce 2016-05-14 10:00:59 -05:00
commit 7d1ed7c738
2 changed files with 37 additions and 8 deletions

View file

@ -81,6 +81,7 @@ var (
CHANNEL_MESSAGES = func(cID string) string { return CHANNELS + cID + "/messages" } CHANNEL_MESSAGES = func(cID string) string { return CHANNELS + cID + "/messages" }
CHANNEL_MESSAGE = func(cID, mID string) string { return CHANNELS + cID + "/messages/" + mID } CHANNEL_MESSAGE = func(cID, mID string) string { return CHANNELS + cID + "/messages/" + mID }
CHANNEL_MESSAGE_ACK = func(cID, mID string) string { return CHANNELS + cID + "/messages/" + mID + "/ack" } CHANNEL_MESSAGE_ACK = func(cID, mID string) string { return CHANNELS + cID + "/messages/" + mID + "/ack" }
CHANNEL_MESSAGES_BULK_DELETE = func(cID string) string { return CHANNEL(cID) + "/messages/bulk_delete" }
INVITE = func(iID string) string { return API + "invite/" + iID } INVITE = func(iID string) string { return API + "invite/" + iID }

View file

@ -1107,6 +1107,34 @@ func (s *Session) ChannelMessageDelete(channelID, messageID string) (err error)
return return
} }
// ChannelMessagesBulkDelete bulk deletes the messages from the channel for the provided messageIDs.
// If only one messageID is in the slice call channelMessageDelete funciton.
// If the slice is empty do nothing.
// channelID : The ID of the channel for the messages to delete.
// messages : The IDs of the messages to be deleted. A slice of string IDs. A maximum of 100 messages.
func (s *Session) ChannelMessagesBulkDelete(channelID string, messages []string) (err error) {
if len(messages) == 0 {
return
}
if len(messages) == 1 {
err = s.ChannelMessageDelete(channelID, messages[0])
return
}
if len(messages) > 100 {
messages = messages[:100]
}
data := struct {
Messages []string `json:"messages"`
}{messages}
_, err = s.Request("POST", CHANNEL_MESSAGES_BULK_DELETE(channelID), data)
return
}
// ChannelFileSend sends a file to the given channel. // ChannelFileSend sends a file to the given channel.
// channelID : The ID of a Channel. // channelID : The ID of a Channel.
// io.Reader : A reader for the file contents. // io.Reader : A reader for the file contents.