carddav: add address-data to server responses
This commit is contained in:
@@ -15,6 +15,8 @@ var (
|
||||
addressBookDescriptionName = xml.Name{namespace, "addressbook-description"}
|
||||
addressBookQueryName = xml.Name{namespace, "addressbook-query"}
|
||||
addressBookMultigetName = xml.Name{namespace, "addressbook-multiget"}
|
||||
|
||||
addressDataName = xml.Name{namespace, "address-data"}
|
||||
)
|
||||
|
||||
type addressbookHomeSet struct {
|
||||
@@ -74,7 +76,7 @@ type addressDataResp struct {
|
||||
}
|
||||
|
||||
type reportReq struct {
|
||||
Query *addressbookQuery
|
||||
Query *addressbookQuery
|
||||
Multiget *addressbookMultiget
|
||||
}
|
||||
|
||||
|
@@ -209,8 +209,15 @@ func (b *backend) propfindAddressObject(propfind *internal.Propfind, ao *Address
|
||||
internal.GetContentTypeName: func(*internal.RawXMLValue) (interface{}, error) {
|
||||
return &internal.GetContentType{Type: vcard.MIMEType}, nil
|
||||
},
|
||||
addressBookDataName: func(*internal.RawXMLValue) (interface{}, error) {
|
||||
var buf bytes.Buffer
|
||||
if err := vcard.NewEncoder(&buf).Encode(ao.Card); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &addressDataResp{Data: buf.Bytes()}, nil
|
||||
},
|
||||
// TODO: getlastmodified, getetag
|
||||
// TODO: address-data
|
||||
}
|
||||
|
||||
return internal.NewPropfindResponse(ao.Href, propfind, props)
|
||||
|
Reference in New Issue
Block a user