aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/Azure/azure-storage-blob-go/2018-03-28/azblob/zz_generated_responder_policy.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/Azure/azure-storage-blob-go/2018-03-28/azblob/zz_generated_responder_policy.go')
-rw-r--r--vendor/github.com/Azure/azure-storage-blob-go/2018-03-28/azblob/zz_generated_responder_policy.go74
1 files changed, 74 insertions, 0 deletions
diff --git a/vendor/github.com/Azure/azure-storage-blob-go/2018-03-28/azblob/zz_generated_responder_policy.go b/vendor/github.com/Azure/azure-storage-blob-go/2018-03-28/azblob/zz_generated_responder_policy.go
new file mode 100644
index 000000000..2f391d731
--- /dev/null
+++ b/vendor/github.com/Azure/azure-storage-blob-go/2018-03-28/azblob/zz_generated_responder_policy.go
@@ -0,0 +1,74 @@
+package azblob
+
+// Code generated by Microsoft (R) AutoRest Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+ "bytes"
+ "context"
+ "encoding/xml"
+ "github.com/Azure/azure-pipeline-go/pipeline"
+ "io/ioutil"
+)
+
+type responder func(resp pipeline.Response) (result pipeline.Response, err error)
+
+// ResponderPolicyFactory is a Factory capable of creating a responder pipeline.
+type responderPolicyFactory struct {
+ responder responder
+}
+
+// New creates a responder policy factory.
+func (arpf responderPolicyFactory) New(next pipeline.Policy, po *pipeline.PolicyOptions) pipeline.Policy {
+ return responderPolicy{next: next, responder: arpf.responder}
+}
+
+type responderPolicy struct {
+ next pipeline.Policy
+ responder responder
+}
+
+// Do sends the request to the service and validates/deserializes the HTTP response.
+func (arp responderPolicy) Do(ctx context.Context, request pipeline.Request) (pipeline.Response, error) {
+ resp, err := arp.next.Do(ctx, request)
+ if err != nil {
+ return resp, err
+ }
+ return arp.responder(resp)
+}
+
+// validateResponse checks an HTTP response's status code against a legal set of codes.
+// If the response code is not legal, then validateResponse reads all of the response's body
+// (containing error information) and returns a response error.
+func validateResponse(resp pipeline.Response, successStatusCodes ...int) error {
+ if resp == nil {
+ return NewResponseError(nil, nil, "nil response")
+ }
+ responseCode := resp.Response().StatusCode
+ for _, i := range successStatusCodes {
+ if i == responseCode {
+ return nil
+ }
+ }
+ // only close the body in the failure case. in the
+ // success case responders will close the body as required.
+ defer resp.Response().Body.Close()
+ b, err := ioutil.ReadAll(resp.Response().Body)
+ if err != nil {
+ return NewResponseError(err, resp.Response(), "failed to read response body")
+ }
+ // the service code, description and details will be populated during unmarshalling
+ responseError := NewResponseError(nil, resp.Response(), resp.Response().Status)
+ if len(b) > 0 {
+ if err = xml.Unmarshal(b, &responseError); err != nil {
+ return NewResponseError(err, resp.Response(), "failed to unmarshal response body")
+ }
+ }
+ return responseError
+}
+
+// removes any BOM from the byte slice
+func removeBOM(b []byte) []byte {
+ // UTF8
+ return bytes.TrimPrefix(b, []byte("\xef\xbb\xbf"))
+}