code.dwrz.net

Go monorepo.
Log | Files | Refs

response_error.go (963B)


      1 package http
      2 
      3 import (
      4 	"errors"
      5 	"fmt"
      6 
      7 	smithyhttp "github.com/aws/smithy-go/transport/http"
      8 )
      9 
     10 // ResponseError provides the HTTP centric error type wrapping the underlying error
     11 // with the HTTP response value and the deserialized RequestID.
     12 type ResponseError struct {
     13 	*smithyhttp.ResponseError
     14 
     15 	// RequestID associated with response error
     16 	RequestID string
     17 }
     18 
     19 // ServiceRequestID returns the request id associated with Response Error
     20 func (e *ResponseError) ServiceRequestID() string { return e.RequestID }
     21 
     22 // Error returns the formatted error
     23 func (e *ResponseError) Error() string {
     24 	return fmt.Sprintf(
     25 		"https response error StatusCode: %d, RequestID: %s, %v",
     26 		e.Response.StatusCode, e.RequestID, e.Err)
     27 }
     28 
     29 // As populates target and returns true if the type of target is a error type that
     30 // the ResponseError embeds, (e.g.AWS HTTP ResponseError)
     31 func (e *ResponseError) As(target interface{}) bool {
     32 	return errors.As(e.ResponseError, target)
     33 }