Bladeren bron

Added support for USER_UPDATE websocket event, closes #28

Bruce Marriner 9 jaren geleden
bovenliggende
commit
0360acbaa0
2 gewijzigde bestanden met toevoegingen van 13 en 1 verwijderingen
  1. 1 0
      structs.go
  2. 12 1
      wsapi.go

+ 1 - 0
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)

+ 12 - 1
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
 	}