forked from pauldemarco/caldav-go
-
Notifications
You must be signed in to change notification settings - Fork 0
/
card.go
54 lines (36 loc) · 1.17 KB
/
card.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package components
import (
"strings"
"github.com/LeonidKrn/caldav-go/icalendar/values"
)
const (
groupKind = "group"
)
type Card struct {
Version string `ical:",3.0"`
UID string `ical:",required"`
ProductId string `ical:"prodid,-//iPaladinLLC/caldav-go//NONSGML v1.0.0//EN"`
Name *values.ContactName `ical:"n,omitempty"`
Organization *values.Organization `ical:"org,omitempty"`
DisplayName string `ical:"fn,omitempty"`
AddressBookKind string `ical:"x_addressbookserver_kind,omitempty"`
AddressBookMembers []*values.AddressBookMember `ical:"x_addressbookserver_member,omitempty"`
Categories string `ical:"categories,omitempty"`
Phones []*values.Phone `ical:"tel,omitempty"`
Emails []*values.Email `ical:"email,omitempty"`
}
func (c Card) IsGroup() bool {
return strings.EqualFold(c.AddressBookKind, "group")
}
func (c *Card) AddAddressBookMember(m ...*values.AddressBookMember) {
c.AddressBookMembers = append(c.AddressBookMembers, m...)
}
func NewCardGroup(uid string, name string) *Card {
n := values.NewSimpleContactName(name)
return &Card{
UID: uid,
Name: n,
DisplayName: n.GetDisplayName(),
AddressBookKind: groupKind,
}
}