From d130ea4e2b17bc84ac72bba6fb88e9759a2100ff Mon Sep 17 00:00:00 2001 From: ston1th Date: Sat, 10 Apr 2021 01:37:30 +0200 Subject: [PATCH] added 404 error --- pkg/api/client/client.go | 13 ++++--------- pkg/api/client/helper.go | 8 +++++++- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/pkg/api/client/client.go b/pkg/api/client/client.go index b73035d..1ddd74a 100644 --- a/pkg/api/client/client.go +++ b/pkg/api/client/client.go @@ -28,6 +28,10 @@ type Client struct { insecure bool } +var ( + ErrNotFound = errors.New("not found") +) + type ClientOption func(*Client) func WithEndpoint(endpoint string) ClientOption { @@ -158,8 +162,6 @@ func (c *Client) NewRequest(ctx context.Context, method, path string, body io.Re return req, nil } -var HTTPErr = errors.New("http error") - func (c *Client) Do(r *http.Request, v interface{}) (resp *http.Response, err error) { if c.debugWriter != nil { dumpReq, err := httputil.DumpRequestOut(r, true) @@ -189,12 +191,5 @@ func (c *Client) Do(r *http.Request, v interface{}) (resp *http.Response, err er } err = decodeResp(resp, v) - if resp.StatusCode >= 400 && resp.StatusCode <= 599 { - if err != nil { - err = fmt.Errorf("%w: %s: %s", HTTPErr, errors.New(resp.Status), err.Error()) - return - } - err = fmt.Errorf("%w: %s", HTTPErr, errors.New(resp.Status)) - } return } diff --git a/pkg/api/client/helper.go b/pkg/api/client/helper.go index 4f2c705..5dc396b 100644 --- a/pkg/api/client/helper.go +++ b/pkg/api/client/helper.go @@ -22,10 +22,16 @@ func decodeResp(resp *http.Response, v interface{}) error { } return json.NewDecoder(resp.Body).Decode(&v) } + if resp.StatusCode == 404 { + return ErrNotFound + } var e Error err := json.NewDecoder(resp.Body).Decode(&e) if err != nil { return err } - return errors.New(e.Message) + if resp.StatusCode >= 400 && resp.StatusCode <= 599 { + return errors.New(e.Message) + } + return nil }