From c4718a3a49cc4121c38f894a43418b017396be0d Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Sun, 19 Jan 2020 15:10:54 +0100 Subject: [PATCH] carddav: add addressbook-home-set to server --- carddav/elements.go | 4 +++- carddav/server.go | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/carddav/elements.go b/carddav/elements.go index 732d870..6664b0c 100644 --- a/carddav/elements.go +++ b/carddav/elements.go @@ -10,8 +10,9 @@ import ( const namespace = "urn:ietf:params:xml:ns:carddav" var ( + addressBookHomeSetName = xml.Name{namespace, "addressbook-home-set"} + addressBookName = xml.Name{namespace, "addressbook"} - addressBookHomeSetName = xml.Name{namespace, "addressbook-home-set"} addressBookDescriptionName = xml.Name{namespace, "addressbook-description"} addressBookQueryName = xml.Name{namespace, "addressbook-query"} addressBookMultigetName = xml.Name{namespace, "addressbook-multiget"} @@ -22,6 +23,7 @@ var ( maxResourceSizeName = xml.Name{namespace, "max-resource-size"} ) +// https://tools.ietf.org/html/rfc6352#section-6.2.3 type addressbookHomeSet struct { XMLName xml.Name `xml:"urn:ietf:params:xml:ns:carddav addressbook-home-set"` Href string `xml:"href"` diff --git a/carddav/server.go b/carddav/server.go index da83e0e..8bb9230 100644 --- a/carddav/server.go +++ b/carddav/server.go @@ -219,7 +219,10 @@ func (b *backend) propfindAddressBook(propfind *internal.Propfind, ab *AddressBo }, }, nil }, - // TODO: addressbook-home-set + // TODO: this is a principal property + addressBookHomeSetName: func(*internal.RawXMLValue) (interface{}, error) { + return &addressbookHomeSet{Href: "/"}, nil + }, } if ab.MaxResourceSize > 0 {