diff options
Diffstat (limited to 'vendor/github.com/nlopes/slack/messages.go')
-rw-r--r-- | vendor/github.com/nlopes/slack/messages.go | 51 |
1 files changed, 42 insertions, 9 deletions
diff --git a/vendor/github.com/nlopes/slack/messages.go b/vendor/github.com/nlopes/slack/messages.go index cdb13098..6551dd4f 100644 --- a/vendor/github.com/nlopes/slack/messages.go +++ b/vendor/github.com/nlopes/slack/messages.go @@ -2,12 +2,13 @@ package slack // OutgoingMessage is used for the realtime API, and seems incomplete. type OutgoingMessage struct { - ID int `json:"id"` + ID int `json:"id"` // channel ID Channel string `json:"channel,omitempty"` Text string `json:"text,omitempty"` Type string `json:"type,omitempty"` ThreadTimestamp string `json:"thread_ts,omitempty"` + ThreadBroadcast bool `json:"reply_broadcast,omitempty"` } // Message is an auxiliary type to allow us to have a message containing sub messages @@ -26,9 +27,12 @@ type Msg struct { Timestamp string `json:"ts,omitempty"` ThreadTimestamp string `json:"thread_ts,omitempty"` IsStarred bool `json:"is_starred,omitempty"` - PinnedTo []string `json:"pinned_to, omitempty"` + PinnedTo []string `json:"pinned_to,omitempty"` Attachments []Attachment `json:"attachments,omitempty"` Edited *Edited `json:"edited,omitempty"` + LastRead string `json:"last_read,omitempty"` + Subscribed bool `json:"subscribed,omitempty"` + UnreadCount int `json:"unread_count,omitempty"` // Message Subtypes SubType string `json:"subtype,omitempty"` @@ -65,7 +69,7 @@ type Msg struct { ParentUserId string `json:"parent_user_id,omitempty"` // file_share, file_comment, file_mention - File *File `json:"file,omitempty"` + Files []File `json:"files,omitempty"` // file_share Upload bool `json:"upload,omitempty"` @@ -82,6 +86,11 @@ type Msg struct { // reactions Reactions []ItemReaction `json:"reactions,omitempty"` + + // slash commands and interactive messages + ResponseType string `json:"response_type,omitempty"` + ReplaceOriginal bool `json:"replace_original"` + DeleteOriginal bool `json:"delete_original"` } // Icon is used for bot messages @@ -109,27 +118,33 @@ type Event struct { // Ping contains information about a Ping Event type Ping struct { - ID int `json:"id"` - Type string `json:"type"` + ID int `json:"id"` + Type string `json:"type"` + Timestamp int64 `json:"timestamp"` } // Pong contains information about a Pong Event type Pong struct { - Type string `json:"type"` - ReplyTo int `json:"reply_to"` + Type string `json:"type"` + ReplyTo int `json:"reply_to"` + Timestamp int64 `json:"timestamp"` } // NewOutgoingMessage prepares an OutgoingMessage that the user can // use to send a message. Use this function to properly set the // messageID. -func (rtm *RTM) NewOutgoingMessage(text string, channelID string) *OutgoingMessage { +func (rtm *RTM) NewOutgoingMessage(text string, channelID string, options ...RTMsgOption) *OutgoingMessage { id := rtm.idGen.Next() - return &OutgoingMessage{ + msg := OutgoingMessage{ ID: id, Type: "message", Channel: channelID, Text: text, } + for _, option := range options { + option(&msg) + } + return &msg } // NewTypingMessage prepares an OutgoingMessage that the user can @@ -143,3 +158,21 @@ func (rtm *RTM) NewTypingMessage(channelID string) *OutgoingMessage { Channel: channelID, } } + +// RTMsgOption allows configuration of various options available for sending an RTM message +type RTMsgOption func(*OutgoingMessage) + +// RTMsgOptionTS sets thead timestamp of an outgoing message in order to respond to a thread +func RTMsgOptionTS(threadTimestamp string) RTMsgOption { + return func(msg *OutgoingMessage) { + msg.ThreadTimestamp = threadTimestamp + } +} + +// RTMsgOptionBroadcast sets broadcast reply to channel to "true" +func RTMsgOptionBroadcast() RTMsgOption { + return func(msg *OutgoingMessage) { + msg.ThreadBroadcast = true + } + +} |