diff options
Diffstat (limited to 'err.go')
| -rw-r--r-- | err.go | 41 |
1 files changed, 41 insertions, 0 deletions
@@ -0,0 +1,41 @@ +package lulu + +import ( + "fmt" + "io" + "net/http" +) + +type errResp struct { + *http.Response +} + +func (e errResp) Error() string { + resp := e.Response + req := resp.Request + body, _ := io.ReadAll(resp.Body) + return fmt.Sprintf("lulu: %s %s: %s: %s", req.Method, req.URL, resp.Status, body) +} + +type errReadResp struct { + *http.Response + error +} + +func (e errReadResp) Error() string { + req := e.Response.Request + return fmt.Sprintf("lulu: %s %s: error reading response body: %v", + req.Method, req.URL, e.error) +} + +type errDecResp struct { + *http.Response + body []byte + error +} + +func (e errDecResp) Error() string { + req := e.Response.Request + return fmt.Sprintf("lulu: %s %s: error decoding response body %q: %v", + req.Method, req.URL, string(e.body), e.error) +} |