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}