diff options
Diffstat (limited to 'vendor/github.com/goamz/goamz/exp/sns/sns.go')
-rw-r--r-- | vendor/github.com/goamz/goamz/exp/sns/sns.go | 113 |
1 files changed, 0 insertions, 113 deletions
diff --git a/vendor/github.com/goamz/goamz/exp/sns/sns.go b/vendor/github.com/goamz/goamz/exp/sns/sns.go deleted file mode 100644 index 4d4622211..000000000 --- a/vendor/github.com/goamz/goamz/exp/sns/sns.go +++ /dev/null @@ -1,113 +0,0 @@ -// -// goamz - Go packages to interact with the Amazon Web Services. -// -// https://wiki.ubuntu.com/goamz -// -// Copyright (c) 2011 Memeo Inc. -// -// Written by Prudhvi Krishna Surapaneni <me@prudhvi.net> - -// This package is in an experimental state, and does not currently -// follow conventions and style of the rest of goamz or common -// Go conventions. It must be polished before it's considered a -// first-class package in goamz. -package sns - -// BUG(niemeyer): Package needs documentation. - -import ( - "encoding/xml" - "net/http" - "net/url" - "time" - - "github.com/goamz/goamz/aws" -) - -// The SNS type encapsulates operation with an SNS region. -type SNS struct { - aws.Auth - aws.Region - private byte // Reserve the right of using private data. -} - -type AttributeEntry struct { - Key string `xml:"key"` - Value string `xml:"value"` -} - -type ResponseMetadata struct { - RequestId string `xml:"ResponseMetadata>RequestId"` - BoxUsage float64 `xml:"ResponseMetadata>BoxUsage"` -} - -func New(auth aws.Auth, region aws.Region) *SNS { - return &SNS{auth, region, 0} -} - -func makeParams(action string) map[string]string { - params := make(map[string]string) - params["Action"] = action - return params -} - -type Error struct { - StatusCode int - Code string - Message string - RequestId string -} - -func (err *Error) Error() string { - return err.Message -} - -type xmlErrors struct { - RequestId string - Errors []Error `xml:"Errors>Error"` -} - -func (sns *SNS) query(params map[string]string, resp interface{}) error { - params["Timestamp"] = time.Now().UTC().Format(time.RFC3339) - u, err := url.Parse(sns.Region.SNSEndpoint) - if err != nil { - return err - } - - sign(sns.Auth, "GET", "/", params, u.Host) - u.RawQuery = multimap(params).Encode() - r, err := http.Get(u.String()) - if err != nil { - return err - } - defer r.Body.Close() - - if r.StatusCode != 200 { - return buildError(r) - } - err = xml.NewDecoder(r.Body).Decode(resp) - return err -} - -func buildError(r *http.Response) error { - errors := xmlErrors{} - xml.NewDecoder(r.Body).Decode(&errors) - var err Error - if len(errors.Errors) > 0 { - err = errors.Errors[0] - } - err.RequestId = errors.RequestId - err.StatusCode = r.StatusCode - if err.Message == "" { - err.Message = r.Status - } - return &err -} - -func multimap(p map[string]string) url.Values { - q := make(url.Values, len(p)) - for k, v := range p { - q[k] = []string{v} - } - return q -} |