Browse Source

Better error checking for New() and Gateway() funcs, closes #75

Bruce Marriner 9 years ago
parent
commit
b5e45827fd
2 changed files with 14 additions and 2 deletions
  1. 2 0
      discord.go
  2. 12 2
      restapi.go

+ 2 - 0
discord.go

@@ -103,12 +103,14 @@ func New(args ...interface{}) (s *Session, err error) {
 	err = s.Open()
 	if err != nil {
 		fmt.Println(err)
+		return
 	}
 
 	// Do websocket handshake.
 	err = s.Handshake()
 	if err != nil {
 		fmt.Println(err)
+		return
 	}
 
 	// Listen for events.

+ 12 - 2
restapi.go

@@ -674,9 +674,19 @@ func (s *Session) VoiceICE() (st *VoiceICE, err error) {
 func (s *Session) Gateway() (gateway string, err error) {
 
 	response, err := s.Request("GET", GATEWAY, nil)
+	if err != nil {
+		return
+	}
+
+	temp := struct {
+		URL string `json:"url"`
+	}{}
 
-	var temp map[string]interface{}
 	err = json.Unmarshal(response, &temp)
-	gateway = temp["url"].(string)
+	if err != nil {
+		return
+	}
+
+	gateway = temp.URL
 	return
 }