package client import ( "encoding/json" "errors" "net/http" ) type Error struct { Message string `json:"message"` Status int `json:"status"` } func decodeResp(resp *http.Response, v interface{}) error { if resp.Body == nil { return nil } defer resp.Body.Close() if resp.StatusCode == 200 { if v == nil { return nil } return json.NewDecoder(resp.Body).Decode(&v) } var e Error err := json.NewDecoder(resp.Body).Decode(&e) if err != nil { return err } return errors.New(e.Message) }