status.go
changeset 106 356507eb8db6
parent 105 e2a16e19eb8b
child 108 3f21113728f4
--- a/status.go	Thu Apr 13 12:54:05 2017 +0200
+++ b/status.go	Thu Apr 13 13:44:09 2017 +0200
@@ -48,16 +48,20 @@
 		return fmt.Errorf("status/%s API query: %s", subquery, err.Error())
 	}
 
+	// Check for error reply
+	var errorResult Error
+	if err := json.Unmarshal([]byte(r.Body), &errorResult); err == nil {
+		// The empty object is not an error
+		if errorResult.Text != "" {
+			return fmt.Errorf("%s", errorResult.Text)
+		}
+	}
+
+	// Not an error reply; let's unmarshal the data
 	err = json.Unmarshal([]byte(r.Body), &data)
 	if err != nil {
-		var errorRes Error
-		err2 := json.Unmarshal([]byte(r.Body), &errorRes)
-		if err2 == nil {
-			return fmt.Errorf("%s", errorRes.Text)
-		}
 		return fmt.Errorf("status/%s API: %s", subquery, err.Error())
 	}
-
 	return nil
 }
 
@@ -131,10 +135,13 @@
 	// Check for error reply
 	var errorResult Error
 	if err := json.Unmarshal([]byte(r.Body), &errorResult); err == nil {
-		return fmt.Errorf("%s", errorResult.Text)
+		// The empty object is not an error
+		if errorResult.Text != "" {
+			return fmt.Errorf("%s", errorResult.Text)
+		}
 	}
 
-	// Not an error reply; let's unmarshall the data
+	// Not an error reply; let's unmarshal the data
 	err = json.Unmarshal([]byte(r.Body), &data)
 	if err != nil {
 		return fmt.Errorf("status/%s API: %s", subquery, err.Error())