summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/nlopes/slack/websocket_misc.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/nlopes/slack/websocket_misc.go')
-rw-r--r--vendor/github.com/nlopes/slack/websocket_misc.go117
1 files changed, 117 insertions, 0 deletions
diff --git a/vendor/github.com/nlopes/slack/websocket_misc.go b/vendor/github.com/nlopes/slack/websocket_misc.go
new file mode 100644
index 00000000..6c2c6abf
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/websocket_misc.go
@@ -0,0 +1,117 @@
+package slack
+
+import (
+ "encoding/json"
+ "fmt"
+)
+
+// AckMessage is used for messages received in reply to other messages
+type AckMessage struct {
+ ReplyTo int `json:"reply_to"`
+ Timestamp string `json:"ts"`
+ Text string `json:"text"`
+ RTMResponse
+}
+
+// RTMResponse encapsulates response details as returned by the Slack API
+type RTMResponse struct {
+ Ok bool `json:"ok"`
+ Error *RTMError `json:"error"`
+}
+
+// RTMError encapsulates error information as returned by the Slack API
+type RTMError struct {
+ Code int
+ Msg string
+}
+
+func (s RTMError) Error() string {
+ return fmt.Sprintf("Code %d - %s", s.Code, s.Msg)
+}
+
+// MessageEvent represents a Slack Message (used as the event type for an incoming message)
+type MessageEvent Message
+
+// RTMEvent is the main wrapper. You will find all the other messages attached
+type RTMEvent struct {
+ Type string
+ Data interface{}
+}
+
+// HelloEvent represents the hello event
+type HelloEvent struct{}
+
+// PresenceChangeEvent represents the presence change event
+type PresenceChangeEvent struct {
+ Type string `json:"type"`
+ Presence string `json:"presence"`
+ User string `json:"user"`
+}
+
+// UserTypingEvent represents the user typing event
+type UserTypingEvent struct {
+ Type string `json:"type"`
+ User string `json:"user"`
+ Channel string `json:"channel"`
+}
+
+// PrefChangeEvent represents a user preferences change event
+type PrefChangeEvent struct {
+ Type string `json:"type"`
+ Name string `json:"name"`
+ Value json.RawMessage `json:"value"`
+}
+
+// ManualPresenceChangeEvent represents the manual presence change event
+type ManualPresenceChangeEvent struct {
+ Type string `json:"type"`
+ Presence string `json:"presence"`
+}
+
+// UserChangeEvent represents the user change event
+type UserChangeEvent struct {
+ Type string `json:"type"`
+ User User `json:"user"`
+}
+
+// EmojiChangedEvent represents the emoji changed event
+type EmojiChangedEvent struct {
+ Type string `json:"type"`
+ EventTimestamp string `json:"event_ts"`
+}
+
+// CommandsChangedEvent represents the commands changed event
+type CommandsChangedEvent struct {
+ Type string `json:"type"`
+ EventTimestamp string `json:"event_ts"`
+}
+
+// EmailDomainChangedEvent represents the email domain changed event
+type EmailDomainChangedEvent struct {
+ Type string `json:"type"`
+ EventTimestamp string `json:"event_ts"`
+ EmailDomain string `json:"email_domain"`
+}
+
+// BotAddedEvent represents the bot added event
+type BotAddedEvent struct {
+ Type string `json:"type"`
+ Bot Bot `json:"bot"`
+}
+
+// BotChangedEvent represents the bot changed event
+type BotChangedEvent struct {
+ Type string `json:"type"`
+ Bot Bot `json:"bot"`
+}
+
+// AccountsChangedEvent represents the accounts changed event
+type AccountsChangedEvent struct {
+ Type string `json:"type"`
+}
+
+// ReconnectUrlEvent represents the receiving reconnect url event
+type ReconnectUrlEvent struct {
+ Type string `json:"type"`
+ URL string `json:"url"`
+}