Commit Diff


commit - 9feb16b3670b92265319b98dbd2bdcb5d8f21db7
commit + 49e200e1bf5862fe2a396ba4b3fa1646aa09e3ee
blob - 34a31310531c880fa5377514dc2fc12e2824bc68
blob + 0042626d8b6c62497ccda2ee3b29aa3ec02ba68d
--- icinga.go
+++ icinga.go
@@ -50,6 +50,7 @@
 package icinga
 
 import (
+	"encoding/json"
 	"errors"
 	"net/http"
 )
@@ -92,8 +93,8 @@ func Permissions(c *Client) ([]string, error) {
 		return nil, errors.New(resp.Status)
 	}
 	defer resp.Body.Close()
-	apiresp, err := parseAPIResponse(resp.Body)
-	if err != nil {
+	var apiresp apiResponse
+	if err := json.NewDecoder(resp.Body).Decode(&apiresp); err != nil {
 		return nil, err
 	}
 	return apiresp.Results[0].Permissions, nil
blob - c2a79861f1e2ae314c22000331bd19aef8938768
blob + 2c74044e18d07503f9b09c5b2134ab2851706ba2
--- response.go
+++ response.go
@@ -24,17 +24,9 @@ type response struct {
 	Error   error
 }
 
-func parseAPIResponse(r io.Reader) (apiResponse, error) {
+func parseResponse(r io.Reader) (*response, error) {
 	var apiresp apiResponse
 	if err := json.NewDecoder(r).Decode(&apiresp); err != nil {
-		return apiResponse{}, err
-	}
-	return apiresp, nil
-}
-
-func parseResponse(r io.Reader) (*response, error) {
-	apiresp, err := parseAPIResponse(r)
-	if err != nil {
 		return nil, err
 	}
 	// Confusingly the top-level status field in an API response contains