From c4f596a93e6504b741e9e6f9978254dc84a6f733 Mon Sep 17 00:00:00 2001 From: VagantemNumen Date: Sat, 14 May 2016 05:23:50 +0500 Subject: [PATCH] Added ChannelMessagesBulkDelete function. Requires a channelID and a slice of messageIDs from the channel. If only on ID is in the slice calls ChannelMessageDelete() internally. If the slice of IDs is empty do nothing. Noted maximum of 100 messageIDs in the comment. --- restapi.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/restapi.go b/restapi.go index 06c2485..1e5756b 100644 --- a/restapi.go +++ b/restapi.go @@ -1107,6 +1107,30 @@ func (s *Session) ChannelMessageDelete(channelID, messageID string) (err error) 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. Maximum 100. +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 + } + + 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. // channelID : The ID of a Channel. // io.Reader : A reader for the file contents.