fork of indigo with slightly nicer lexgen
at main 786 B view raw
1package client 2 3import ( 4 "fmt" 5) 6 7type APIError struct { 8 StatusCode int 9 Name string 10 Message string 11} 12 13func (ae *APIError) Error() string { 14 if ae.StatusCode > 0 { 15 if ae.Name != "" && ae.Message != "" { 16 return fmt.Sprintf("API request failed (HTTP %d): %s: %s", ae.StatusCode, ae.Name, ae.Message) 17 } else if ae.Name != "" { 18 return fmt.Sprintf("API request failed (HTTP %d): %s", ae.StatusCode, ae.Name) 19 } 20 return fmt.Sprintf("API request failed (HTTP %d)", ae.StatusCode) 21 } 22 return "API request failed" 23} 24 25type ErrorBody struct { 26 Name string `json:"error"` 27 Message string `json:"message,omitempty"` 28} 29 30func (eb *ErrorBody) APIError(statusCode int) error { 31 return &APIError{ 32 StatusCode: statusCode, 33 Name: eb.Name, 34 Message: eb.Message, 35 } 36}