From 0360acbaa01a05e8220df86e60c5543e871fa57d Mon Sep 17 00:00:00 2001 From: Bruce Marriner Date: Mon, 21 Dec 2015 11:24:48 -0600 Subject: [PATCH] Added support for USER_UPDATE websocket event, closes #28 --- structs.go | 1 + wsapi.go | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/structs.go b/structs.go index baa1907..4e5b6d4 100644 --- a/structs.go +++ b/structs.go @@ -36,6 +36,7 @@ type Session struct { OnMessageUpdate func(*Session, Message) OnMessageDelete func(*Session, MessageDelete) OnMessageAck func(*Session, MessageAck) + OnUserUpdate func(*Session, User) OnPresenceUpdate func(*Session, PresenceUpdate) OnVoiceStateUpdate func(*Session, VoiceState) OnChannelCreate func(*Session, Channel) diff --git a/wsapi.go b/wsapi.go index 3273122..7efa3f5 100644 --- a/wsapi.go +++ b/wsapi.go @@ -174,6 +174,17 @@ func (s *Session) event(messageType int, message []byte) (err error) { } s.onVoiceStateUpdate(st) return + case "USER_UPDATE": + if s.OnUserUpdate != nil { + var st User + if err := json.Unmarshal(e.RawData, &st); err != nil { + fmt.Println(e.Type, err) + printJSON(e.RawData) // TODO: Better error logging + return err + } + s.OnUserUpdate(s, st) + return + } case "PRESENCE_UPDATE": if s.OnPresenceUpdate != nil { var st PresenceUpdate @@ -390,7 +401,7 @@ func (s *Session) event(messageType int, message []byte) (err error) { } default: fmt.Println("UNKNOWN EVENT: ", e.Type) - // learn the log package + // TODO learn the log package // log.print type and JSON data }