Improve error reporting (#68)

* Provide APIError and use Go's error wrapping

* Add generic request error

* Fix code formatting
This commit is contained in:
Marc Haisenko
2023-02-13 17:43:06 +01:00
committed by GitHub
parent 8fd81bc29a
commit ee3df71880
3 changed files with 88 additions and 9 deletions

9
api.go
View File

@@ -66,9 +66,14 @@ func (c *Client) sendRequest(req *http.Request, v interface{}) error {
var errRes ErrorResponse
err = json.NewDecoder(res.Body).Decode(&errRes)
if err != nil || errRes.Error == nil {
return fmt.Errorf("error, status code: %d", res.StatusCode)
reqErr := RequestError{
StatusCode: res.StatusCode,
Err: err,
}
return fmt.Errorf("error, %w", &reqErr)
}
return fmt.Errorf("error, status code: %d, message: %s", res.StatusCode, errRes.Error.Message)
errRes.Error.StatusCode = res.StatusCode
return fmt.Errorf("error, status code: %d, message: %w", res.StatusCode, errRes.Error)
}
if v != nil {