github.com/aavshr/aws-sdk-go@v1.41.3/private/protocol/query/unmarshal.go (about) 1 package query 2 3 //go:generate go run -tags codegen ../../../private/model/cli/gen-protocol-tests ../../../models/protocol_tests/output/query.json unmarshal_test.go 4 5 import ( 6 "encoding/xml" 7 8 "github.com/aavshr/aws-sdk-go/aws/awserr" 9 "github.com/aavshr/aws-sdk-go/aws/request" 10 "github.com/aavshr/aws-sdk-go/private/protocol/xml/xmlutil" 11 ) 12 13 // UnmarshalHandler is a named request handler for unmarshaling query protocol requests 14 var UnmarshalHandler = request.NamedHandler{Name: "awssdk.query.Unmarshal", Fn: Unmarshal} 15 16 // UnmarshalMetaHandler is a named request handler for unmarshaling query protocol request metadata 17 var UnmarshalMetaHandler = request.NamedHandler{Name: "awssdk.query.UnmarshalMeta", Fn: UnmarshalMeta} 18 19 // Unmarshal unmarshals a response for an AWS Query service. 20 func Unmarshal(r *request.Request) { 21 defer r.HTTPResponse.Body.Close() 22 if r.DataFilled() { 23 decoder := xml.NewDecoder(r.HTTPResponse.Body) 24 err := xmlutil.UnmarshalXML(r.Data, decoder, r.Operation.Name+"Result") 25 if err != nil { 26 r.Error = awserr.NewRequestFailure( 27 awserr.New(request.ErrCodeSerialization, "failed decoding Query response", err), 28 r.HTTPResponse.StatusCode, 29 r.RequestID, 30 ) 31 return 32 } 33 } 34 } 35 36 // UnmarshalMeta unmarshals header response values for an AWS Query service. 37 func UnmarshalMeta(r *request.Request) { 38 r.RequestID = r.HTTPResponse.Header.Get("X-Amzn-Requestid") 39 }