From f8d9f83cbc04bfb10f84848d3a2976345ce07bb0 Mon Sep 17 00:00:00 2001 From: emersion Date: Thu, 14 Sep 2017 11:51:57 +0200 Subject: [PATCH] carddav: add AddressObject.Remove --- carddav/backend.go | 1 + carddav/fs.go | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/carddav/backend.go b/carddav/backend.go index 0ec561d..f9ff3ef 100644 --- a/carddav/backend.go +++ b/carddav/backend.go @@ -24,6 +24,7 @@ type AddressObject interface { Stat() (os.FileInfo, error) // can return nil, nil Card() (vcard.Card, error) SetCard(vcard.Card) error + Remove() error } type AddressBook interface { diff --git a/carddav/fs.go b/carddav/fs.go index d7ba46a..a09bc09 100644 --- a/carddav/fs.go +++ b/carddav/fs.go @@ -370,7 +370,17 @@ func (fs *fileSystem) OpenFile(ctx context.Context, name string, flag int, perm } func (fs *fileSystem) RemoveAll(ctx context.Context, name string) error { - return errNotYetImplemented + if name == "/" { + return errUnsupported + } + + id := fs.addressObjectID(name) + ao, err := fs.ab.GetAddressObject(id) + if err != nil { + return err + } + + return ao.Remove() } func (fs *fileSystem) Rename(ctx context.Context, oldName, newName string) error {