carddav: add allprop and propname support to query and multiget in server

This commit is contained in:
Simon Ser 2020-01-22 18:59:01 +01:00
parent 0a251a8dfb
commit 7e29f37bd8
No known key found for this signature in database
GPG Key ID: 0FDE7BE0E88F5E48
2 changed files with 15 additions and 11 deletions

View File

@ -54,18 +54,20 @@ type maxResourceSize struct {
// https://tools.ietf.org/html/rfc6352#section-10.3 // https://tools.ietf.org/html/rfc6352#section-10.3
type addressbookQuery struct { type addressbookQuery struct {
XMLName xml.Name `xml:"urn:ietf:params:xml:ns:carddav addressbook-query"` XMLName xml.Name `xml:"urn:ietf:params:xml:ns:carddav addressbook-query"`
Prop *internal.Prop `xml:"DAV: prop,omitempty"` Prop *internal.Prop `xml:"DAV: prop,omitempty"`
// TODO: DAV:allprop | DAV:propname AllProp *struct{} `xml:"DAV: allprop,omitempty"`
PropName *struct{} `xml:"DAV: propname,omitempty"`
// TODO: filter, limit? // TODO: filter, limit?
} }
// https://tools.ietf.org/html/rfc6352#section-8.7 // https://tools.ietf.org/html/rfc6352#section-8.7
type addressbookMultiget struct { type addressbookMultiget struct {
XMLName xml.Name `xml:"urn:ietf:params:xml:ns:carddav addressbook-multiget"` XMLName xml.Name `xml:"urn:ietf:params:xml:ns:carddav addressbook-multiget"`
Hrefs []internal.Href `xml:"DAV: href"` Hrefs []internal.Href `xml:"DAV: href"`
Prop *internal.Prop `xml:"DAV: prop,omitempty"` Prop *internal.Prop `xml:"DAV: prop,omitempty"`
// TODO: DAV:allprop | DAV:propname AllProp *struct{} `xml:"DAV: allprop,omitempty"`
PropName *struct{} `xml:"DAV: propname,omitempty"`
} }
func newProp(name string, noValue bool) *internal.RawXMLValue { func newProp(name string, noValue bool) *internal.RawXMLValue {

View File

@ -86,8 +86,9 @@ func (h *Handler) handleQuery(w http.ResponseWriter, query *addressbookQuery) er
for _, ao := range aos { for _, ao := range aos {
b := backend{h.Backend} b := backend{h.Backend}
propfind := internal.Propfind{ propfind := internal.Propfind{
Prop: query.Prop, Prop: query.Prop,
// TODO: Allprop, Propnames AllProp: query.AllProp,
PropName: query.PropName,
} }
resp, err := b.propfindAddressObject(&propfind, &ao) resp, err := b.propfindAddressObject(&propfind, &ao)
if err != nil { if err != nil {
@ -110,8 +111,9 @@ func (h *Handler) handleMultiget(w http.ResponseWriter, multiget *addressbookMul
b := backend{h.Backend} b := backend{h.Backend}
propfind := internal.Propfind{ propfind := internal.Propfind{
Prop: multiget.Prop, Prop: multiget.Prop,
// TODO: Allprop, Propnames AllProp: multiget.AllProp,
PropName: multiget.PropName,
} }
resp, err := b.propfindAddressObject(&propfind, ao) resp, err := b.propfindAddressObject(&propfind, ao)
if err != nil { if err != nil {