diff options
| author | Stefan Majewsky <majewsky@gmx.net> | 2018-01-30 16:45:54 +0100 |
|---|---|---|
| committer | Stefan Majewsky <majewsky@gmx.net> | 2018-01-30 16:45:54 +0100 |
| commit | a2700ca5e57c6466e48c644da6a0c1c93e5ab70c (patch) | |
| tree | cd8fe830a64ae13012fdd4220edc7bf82760deca /account.go | |
| parent | cad4a10319b98dd15c0a74d0fea13a2da4a0d3cc (diff) | |
| download | go-schwift-a2700ca5e57c6466e48c644da6a0c1c93e5ab70c.tar.gz | |
finalize Account.Post() design, add initial account tests
Failing right now because compileHeaders() is a stub.
Diffstat (limited to 'account.go')
| -rw-r--r-- | account.go | 15 |
1 files changed, 11 insertions, 4 deletions
@@ -96,7 +96,7 @@ func (a *Account) Headers() (AccountHeaders, error) { resp, err := Request{ Method: "HEAD", - ExpectStatusCodes: []int{200}, + ExpectStatusCodes: []int{204}, }.Do(a.client) if err != nil { return AccountHeaders{}, err @@ -107,6 +107,7 @@ func (a *Account) Headers() (AccountHeaders, error) { if err != nil { return AccountHeaders{}, err } + a.headers = &headers return *a.headers, nil } @@ -116,13 +117,19 @@ func (a *Account) Invalidate() { a.headers = nil } -//Post creates or updates the account using a POST request. -func (a *Account) Post(headers AccountHeaders) error { +//Post creates or updates the account using a POST request. To set arbitrary +//request headers (and to add URL parameters, pass a non-nil *RequestOptions. +// +//A successful POST request implies Invalidate() since it changes account metadata. +func (a *Account) Post(headers AccountHeaders, opts *RequestOptions) error { _, err := Request{ Method: "POST", - AdditionalHeaders: compileHeaders(headers), + Options: compileHeaders(headers, opts), ExpectStatusCodes: []int{204}, }.Do(a.client) + if err == nil { + a.Invalidate() + } return err } |
