aboutsummaryrefslogtreecommitdiff
path: root/iterator.go
diff options
context:
space:
mode:
authorStefan Majewsky <majewsky@gmx.net>2018-05-03 16:09:23 +0200
committerStefan Majewsky <majewsky@gmx.net>2018-05-03 16:09:23 +0200
commit98778b85e01c13d7ede8c76e35c8c954fb379ec1 (patch)
treee5f43c6b015f195a278fd15eecd43dd847c58652 /iterator.go
parent0e685c1a6632f2f421713f677dd1ae691dedaa68 (diff)
downloadgo-schwift-98778b85e01c13d7ede8c76e35c8c954fb379ec1.tar.gz
add support for pseudo-directories to ObjectIterator
Diffstat (limited to 'iterator.go')
-rw-r--r--iterator.go6
1 files changed, 6 insertions, 0 deletions
diff --git a/iterator.go b/iterator.go
index 04fb492..641e28d 100644
--- a/iterator.go
+++ b/iterator.go
@@ -30,6 +30,7 @@ import (
type iteratorInterface interface {
getAccount() *Account
getContainerName() string
+ getDelimiter() string
getPrefix() string
getOptions() *RequestOptions
//putHeader initializes the AccountHeaders/ContainerHeaders field of the
@@ -39,6 +40,7 @@ type iteratorInterface interface {
func (i ContainerIterator) getAccount() *Account { return i.Account }
func (i ContainerIterator) getContainerName() string { return "" }
+func (i ContainerIterator) getDelimiter() string { return "" }
func (i ContainerIterator) getPrefix() string { return i.Prefix }
func (i ContainerIterator) getOptions() *RequestOptions { return i.Options }
@@ -53,6 +55,7 @@ func (i ContainerIterator) putHeader(hdr http.Header) error {
func (i ObjectIterator) getAccount() *Account { return i.Container.Account() }
func (i ObjectIterator) getContainerName() string { return i.Container.Name() }
+func (i ObjectIterator) getDelimiter() string { return i.Delimiter }
func (i ObjectIterator) getPrefix() string { return i.Prefix }
func (i ObjectIterator) getOptions() *RequestOptions { return i.Options }
@@ -79,6 +82,9 @@ func (b *iteratorBase) request(limit int, detailed bool) Request {
Options: cloneRequestOptions(b.i.getOptions(), nil),
}
+ if delimiter := b.i.getDelimiter(); delimiter != "" {
+ r.Options.Values.Set("delimiter", delimiter)
+ }
if prefix := b.i.getPrefix(); prefix != "" {
r.Options.Values.Set("prefix", prefix)
}