2020-01-21 20:01:18 +00:00
|
|
|
// Package carddav provides a client and server CardDAV implementation.
|
|
|
|
//
|
|
|
|
// CardDAV is defined in RFC 6352.
|
2020-01-14 21:19:54 +00:00
|
|
|
package carddav
|
|
|
|
|
2020-01-14 22:13:23 +00:00
|
|
|
import (
|
2020-01-22 14:35:36 +00:00
|
|
|
"time"
|
|
|
|
|
2020-01-14 22:44:21 +00:00
|
|
|
"github.com/emersion/go-vcard"
|
2020-01-14 22:13:23 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
type AddressBook struct {
|
2020-01-22 10:07:30 +00:00
|
|
|
Path string
|
2020-01-19 14:06:09 +00:00
|
|
|
Name string
|
|
|
|
Description string
|
|
|
|
MaxResourceSize int64
|
2020-01-14 22:13:23 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
type AddressBookQuery struct {
|
2020-01-27 09:30:19 +00:00
|
|
|
DataRequest AddressDataRequest
|
2020-01-23 09:35:06 +00:00
|
|
|
|
2020-01-24 10:25:58 +00:00
|
|
|
PropFilters []PropFilter
|
|
|
|
FilterTest FilterTest // defaults to FilterAnyOf
|
|
|
|
|
2020-01-23 09:35:06 +00:00
|
|
|
Limit int // <= 0 means unlimited
|
2020-01-14 22:44:21 +00:00
|
|
|
}
|
|
|
|
|
2020-01-27 09:30:19 +00:00
|
|
|
type AddressDataRequest struct {
|
|
|
|
Props []string
|
|
|
|
AllProp bool
|
|
|
|
}
|
|
|
|
|
2020-01-24 10:25:58 +00:00
|
|
|
type PropFilter struct {
|
|
|
|
Name string
|
2020-01-24 11:24:35 +00:00
|
|
|
Test FilterTest // defaults to FilterAnyOf
|
2020-01-24 10:25:58 +00:00
|
|
|
|
|
|
|
// if IsNotDefined is set, TextMatches and Params need to be unset
|
|
|
|
IsNotDefined bool
|
|
|
|
TextMatches []TextMatch
|
|
|
|
Params []ParamFilter
|
|
|
|
}
|
|
|
|
|
|
|
|
type ParamFilter struct {
|
|
|
|
Name string
|
|
|
|
|
|
|
|
// if IsNotDefined is set, TextMatch needs to be unset
|
|
|
|
IsNotDefined bool
|
|
|
|
TextMatch *TextMatch
|
|
|
|
}
|
|
|
|
|
|
|
|
type TextMatch struct {
|
|
|
|
Text string
|
|
|
|
NegateCondition bool
|
|
|
|
MatchType MatchType // defaults to MatchContains
|
|
|
|
}
|
|
|
|
|
|
|
|
type FilterTest string
|
|
|
|
|
|
|
|
const (
|
|
|
|
FilterAnyOf FilterTest = "anyof"
|
|
|
|
FilterAllOf FilterTest = "allof"
|
|
|
|
)
|
|
|
|
|
|
|
|
type MatchType string
|
|
|
|
|
|
|
|
const (
|
|
|
|
MatchEquals MatchType = "equals"
|
|
|
|
MatchContains MatchType = "contains"
|
|
|
|
MatchStartsWith MatchType = "starts-with"
|
|
|
|
MatchEndsWith MatchType = "ends-with"
|
|
|
|
)
|
|
|
|
|
2020-01-15 11:09:42 +00:00
|
|
|
type AddressBookMultiGet struct {
|
2020-01-23 09:35:06 +00:00
|
|
|
Paths []string
|
2020-01-27 09:30:19 +00:00
|
|
|
DataRequest AddressDataRequest
|
2020-01-15 11:09:42 +00:00
|
|
|
}
|
|
|
|
|
2020-01-17 15:20:05 +00:00
|
|
|
type AddressObject struct {
|
2020-01-22 14:35:36 +00:00
|
|
|
Path string
|
|
|
|
ModTime time.Time
|
|
|
|
ETag string
|
|
|
|
Card vcard.Card
|
2020-01-14 22:13:23 +00:00
|
|
|
}
|