mirror of
https://github.com/1f349/go-webdav.git
synced 2024-12-22 16:24:14 +00:00
carddav: add allprop and propname support to query and multiget in server
This commit is contained in:
parent
0a251a8dfb
commit
7e29f37bd8
@ -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 {
|
||||||
|
@ -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 {
|
||||||
|
Loading…
Reference in New Issue
Block a user