github.com/IBM-Cloud/bluemix-go@v0.0.0-20240314082800-4e02a69b84b2/bmxerror/types.go (about)

     1  package bmxerror
     2  
     3  import "fmt"
     4  
     5  type genericError struct {
     6  	code        string
     7  	description string
     8  }
     9  
    10  func newGenericError(code, description string) *genericError {
    11  	return &genericError{code, description}
    12  }
    13  
    14  func (g genericError) Error() string {
    15  	return fmt.Sprintf("%s: %s", g.code, g.description)
    16  }
    17  
    18  func (g genericError) String() string {
    19  	return g.Error()
    20  }
    21  
    22  func (g genericError) Code() string {
    23  	return g.code
    24  }
    25  
    26  func (g genericError) Description() string {
    27  	return g.description
    28  }
    29  
    30  type requestError struct {
    31  	genericError
    32  	statusCode int
    33  }
    34  
    35  func newRequestError(code, description string, statusCode int) *requestError {
    36  	return &requestError{
    37  		genericError: genericError{
    38  			code:        code,
    39  			description: description,
    40  		},
    41  		statusCode: statusCode,
    42  	}
    43  }
    44  
    45  func (r requestError) Error() string {
    46  	return fmt.Sprintf("Request failed with status code: %d, %s: %s", r.statusCode, r.code, r.description)
    47  }
    48  
    49  func (r requestError) Code() string {
    50  	return r.code
    51  }
    52  func (r requestError) Description() string {
    53  	return r.description
    54  }
    55  func (r requestError) StatusCode() int {
    56  	return r.statusCode
    57  }