diff options
author | Bob Van Landuyt <bob@vanlanduyt.co> | 2019-03-14 14:01:42 +0100 |
---|---|---|
committer | Bob Van Landuyt <bob@vanlanduyt.co> | 2019-03-15 18:03:35 +0100 |
commit | 83c0f18e1de04b3bad9c424084e738e911c47336 (patch) | |
tree | 22d69b9450693bb153e58dbe8b7cd6feb3f8e1e0 /go/internal/gitlabnet/discover/client.go | |
parent | 53511f3655a5eed9976164fbd88d14df3490000c (diff) | |
download | gitlab-shell-83c0f18e1de04b3bad9c424084e738e911c47336.tar.gz |
Wrap Stderr & Stdout in a reporter struct
The reporter struct can be used for passing around and reporting to
the io.Writer of choice.
Diffstat (limited to 'go/internal/gitlabnet/discover/client.go')
-rw-r--r-- | go/internal/gitlabnet/discover/client.go | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/go/internal/gitlabnet/discover/client.go b/go/internal/gitlabnet/discover/client.go index 4e65d25..8df78fb 100644 --- a/go/internal/gitlabnet/discover/client.go +++ b/go/internal/gitlabnet/discover/client.go @@ -45,7 +45,6 @@ func (c *Client) GetByUsername(username string) (*Response, error) { } func (c *Client) parseResponse(resp *http.Response) (*Response, error) { - defer resp.Body.Close() parsedResponse := &Response{} if err := json.NewDecoder(resp.Body).Decode(parsedResponse); err != nil { @@ -53,7 +52,6 @@ func (c *Client) parseResponse(resp *http.Response) (*Response, error) { } else { return parsedResponse, nil } - } func (c *Client) getResponse(params url.Values) (*Response, error) { @@ -64,7 +62,13 @@ func (c *Client) getResponse(params url.Values) (*Response, error) { return nil, err } - return c.parseResponse(response) + defer response.Body.Close() + parsedResponse, err := c.parseResponse(response) + if err != nil { + return nil, fmt.Errorf("Parsing failed") + } + + return parsedResponse, nil } func (r *Response) IsAnonymous() bool { |