Sha256: 504e0ac5d1f199078b71e91cb52e9759e0b350878092ffef5d6e13487f3ba4d4
Contents?: true
Size: 1.64 KB
Versions: 16
Compression:
Stored size: 1.64 KB
Contents
package xml import ( "encoding/xml" "fmt" "io" ) // ErrorComponents represents the error response fields // that will be deserialized from an xml error response body type ErrorComponents struct { Code string Message string RequestID string } // GetErrorResponseComponents returns the error fields from an xml error response body func GetErrorResponseComponents(r io.Reader, noErrorWrapping bool) (ErrorComponents, error) { if noErrorWrapping { var errResponse noWrappedErrorResponse if err := xml.NewDecoder(r).Decode(&errResponse); err != nil && err != io.EOF { return ErrorComponents{}, fmt.Errorf("error while deserializing xml error response: %w", err) } return ErrorComponents{ Code: errResponse.Code, Message: errResponse.Message, RequestID: errResponse.RequestID, }, nil } var errResponse wrappedErrorResponse if err := xml.NewDecoder(r).Decode(&errResponse); err != nil && err != io.EOF { return ErrorComponents{}, fmt.Errorf("error while deserializing xml error response: %w", err) } return ErrorComponents{ Code: errResponse.Code, Message: errResponse.Message, RequestID: errResponse.RequestID, }, nil } // noWrappedErrorResponse represents the error response body with // no internal <Error></Error wrapping type noWrappedErrorResponse struct { Code string `xml:"Code"` Message string `xml:"Message"` RequestID string `xml:"RequestId"` } // wrappedErrorResponse represents the error response body // wrapped within <Error>...</Error> type wrappedErrorResponse struct { Code string `xml:"Error>Code"` Message string `xml:"Error>Message"` RequestID string `xml:"RequestId"` }
Version data entries
16 entries across 16 versions & 1 rubygems