From 2dc521d589ecc26a10de11ac21d353887dbbff06 Mon Sep 17 00:00:00 2001 From: Corey Johnson Date: Fri, 11 Oct 2019 14:23:46 -0700 Subject: [PATCH] A non-successful response returns early --- api/client.go | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/api/client.go b/api/client.go index fc6895ca1..6a9644284 100644 --- a/api/client.go +++ b/api/client.go @@ -87,23 +87,25 @@ func graphQL(query string, variables map[string]string, v interface{}) error { func handleResponse(resp *http.Response, body []byte, v interface{}) error { success := resp.StatusCode >= 200 && resp.StatusCode < 300 - if success { - gr := &graphQLResponse{Data: v} - err := json.Unmarshal(body, &gr) - if err != nil { - return err - } - if len(gr.Errors) > 0 { - errorMessages := gr.Errors[0].Message - for _, e := range gr.Errors[1:] { - errorMessages += ", " + e.Message - } - return fmt.Errorf("graphql error: '%s'", errorMessages) - } - return nil + if !success { + return handleHTTPError(resp, body) } - return handleHTTPError(resp, body) + gr := &graphQLResponse{Data: v} + err := json.Unmarshal(body, &gr) + if err != nil { + return err + } + + if len(gr.Errors) > 0 { + errorMessages := gr.Errors[0].Message + for _, e := range gr.Errors[1:] { + errorMessages += ", " + e.Message + } + return fmt.Errorf("graphql error: '%s'", errorMessages) + } + return nil + } func handleHTTPError(resp *http.Response, body []byte) error {