aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Majewsky <majewsky@gmx.net>2018-04-27 19:55:34 +0200
committerStefan Majewsky <majewsky@gmx.net>2018-04-27 19:55:34 +0200
commit62ea09de889bd5c5048540ab4c44fcdb5002467a (patch)
tree36920c8d3c8384071f209d2731c8c3f58fc45c5a
parent61cbe4314ea1f626a8b785628d053e2af52c1ddd (diff)
downloadgo-schwift-62ea09de889bd5c5048540ab4c44fcdb5002467a.tar.gz
add Account.isEqualTo, Container.isEqualTo
-rw-r--r--account.go4
-rw-r--r--bulk.go6
-rw-r--r--container.go4
3 files changed, 10 insertions, 4 deletions
diff --git a/account.go b/account.go
index 936b9e1..4277163 100644
--- a/account.go
+++ b/account.go
@@ -36,6 +36,10 @@ type Account struct {
caps *Capabilities
}
+func (a *Account) isEqualTo(other *Account) bool {
+ return other.baseURL == a.baseURL && other.name == a.name
+}
+
var endpointURLRegexp = regexp.MustCompile(`^(.*/)v1/(.*)/$`)
//InitializeAccount takes something that implements the Backend interface, and
diff --git a/bulk.go b/bulk.go
index e63366d..42fb0b7 100644
--- a/bulk.go
+++ b/bulk.go
@@ -145,14 +145,12 @@ func makeBulkObjectError(fullName string, statusCode int) BulkObjectError {
func (a *Account) BulkDelete(objects []*Object, containers []*Container, opts *RequestOptions) (numDeleted int, numNotFound int, deleteError error) {
//validate that all given objects are in this account
for _, obj := range objects {
- other := obj.Container().Account()
- if other.baseURL != a.baseURL || other.name != a.name {
+ if !a.isEqualTo(obj.Container().Account()) {
return 0, 0, ErrAccountMismatch
}
}
for _, container := range containers {
- other := container.Account()
- if other.baseURL != a.baseURL || other.name != a.name {
+ if !a.isEqualTo(container.Account()) {
return 0, 0, ErrAccountMismatch
}
}
diff --git a/container.go b/container.go
index 1d310aa..80aeca3 100644
--- a/container.go
+++ b/container.go
@@ -30,6 +30,10 @@ type Container struct {
headers *ContainerHeaders
}
+func (c *Container) isEqualTo(other *Container) bool {
+ return other.name == c.name && other.a.isEqualTo(c.a)
+}
+
//Container returns a handle to the container with the given name within this
//account. This function does not issue any HTTP requests, and therefore cannot
//ensure that the container exists. Use the Exists() function to check for the