1Net::CardDAVTalk(3)   User Contributed Perl Documentation  Net::CardDAVTalk(3)
2
3
4

NAME

6       Net::CardDAVTalk - A library for talking to CardDAV servers
7

VERSION

9       Version 0.09
10

SYNOPSIS

12       This module maps from CardDAV to an old version of the FastMail API.
13       It's mostly useful as an example of how to talk CardDAV and for the
14       Cyrus IMAP test suite Cassandane.
15
16           use Net::CardDAVTalk;
17
18           my $foo = Net::CardDAVTalk->new();
19           ...
20

SUBROUTINES/METHODS

22   $class->new()
23       Takes the same arguments as Net::DAVTalk and adds the single namespace:
24
25           C => 'urn:ietf:params:xml:ns:carddav'
26
27   $self->NewAddressBook($Path, %Args)
28       Creates a new addressbook collection.  Requires the full path (unlike
29       Net::CalDAVTalk, which creates paths by UUID) and takes a single
30       argument, the name:
31
32       e.g.
33
34           $CardDAV->NewAddressBook("Default", name => "Addressbook");
35
36   $self->DeleteAddressBook($Path)
37       Deletes the addressbook at the given path
38
39       e.g.
40
41           $CardDAV->DeleteAddressBook("Shared");
42
43   $self->UpdateAddressBook($Path, %Args)
44       Like 'new', but for an existing addressbook.  For now, can only change
45       the name.
46
47       e.g.
48
49           $CardDAV->UpdateAddressBook("Default", name => "My Happy Addressbook");
50
51   $self->GetAddressBook($Path, %Args)
52       Calls 'GetAddressBooks' with the args, and greps for the one with the
53       matching path.
54
55       e.g.
56
57           my $AB = $CardDAV->GetAddressBook("Default");
58
59   $self->GetAddressBooks(%Args)
60       Get all the addressbooks on the server.
61
62       Returns an arrayref of hashrefs
63
64       e.g.
65
66           my $ABs = $CardDAV->GetAddressBooks(Sync => 1);
67           foreach my $AB (@$ABs) {
68               say "$AB->{path}: $AB->{name}";
69           }
70
71   $Self->NewContact($AddressBookPath, $VCard)
72       Create a new contact from the Net::CardDAVTalk::VCard object, either
73       using its uid field or generating a new UUID and appending .vcf for the
74       filename.
75
76       Returns the full path to the card.
77
78       NOTE: can also be used for a kind: group v4 style group.
79
80   $self->DeleteContact($Path)
81       Delete the contact at path $Path.
82
83   $Self->UpdateContact($Path, $VCard)
84       Identical to NewContact, but will fail unless there is an existing
85       contact with that path.  Also takes the full path instead of just the
86       addressbook path.
87
88       NOTE: can also be used for a kind: group v4 style group.
89
90   $Self->GetContact($Path)
91       Fetch a specific contact by path.  Returns a Net::CardDAVTalk::VCard
92       object.
93
94   $Self->GetContactAndProps($Path, $Props)
95       Use a multiget to fetch the properties in the arrayref as well as the
96       card content.
97
98       Returns the card in scalar context - the card and an array of errors in
99       list context.
100
101   $self->GetContacts($Path, $Props, %Args)
102       Get multiple cards, possibly including props, using both a propfind AND
103       a multiget.
104
105       Returns an arrayref of contact and an arrayref of errors (or just the
106       contacts in scalar context again)
107
108   $self->GetContactLinks($Path)
109       Returns a hash of href => etag for every contact URL (type:
110       text/(x-)?vcard) inside the collection at \$Path.
111
112   $self->GetContactsMulti($Path, $Urls, $Props)
113       Does an addressbook-multiget on the \$Path for all the URLs in \$Urls
114       also fetching \$Props on top of the address-data and getetag.
115
116   $self->SyncContacts($Path, $Props, %Args)
117       uses the argument 'syncToken' to find newly added and removed cards
118       from the server.  Returns just the added/changed contacts in scalar
119       context, or a list of array of contacts, array of removed, array of
120       errors and the new syncToken as 4 items in list context.
121
122   $self->SyncContactLinks($Path, %Args)
123       uses the argument 'syncToken' to find newly added and removed cards
124       from the server.
125
126       Returns a list of:
127
128       * Hash of href to etag for added/changed cargs * List of href of
129       removed cards * List of errors * Scalar value of new syncToken
130
131   $self->MoveContact($Path, $NewPath)
132       Move a contact to a new path (usually in a new addressbook) - both
133       paths are card paths.
134

AUTHOR

136       Bron Gondwana, "<brong at cpan.org>"
137

BUGS

139       Please report any bugs or feature requests to "bug-net-carddavtalk at
140       rt.cpan.org", or through the web interface at
141       <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Net-CardDAVTalk>.  I
142       will be notified, and then you'll automatically be notified of progress
143       on your bug as I make changes.
144

SUPPORT

146       You can find documentation for this module with the perldoc command.
147
148           perldoc Net::CardDAVTalk
149
150       You can also look for information at:
151
152       •   RT: CPAN's request tracker (report bugs here)
153
154           <http://rt.cpan.org/NoAuth/Bugs.html?Dist=Net-CardDAVTalk>
155
156       •   AnnoCPAN: Annotated CPAN documentation
157
158           <http://annocpan.org/dist/Net-CardDAVTalk>
159
160       •   CPAN Ratings
161
162           <http://cpanratings.perl.org/d/Net-CardDAVTalk>
163
164       •   Search CPAN
165
166           <http://search.cpan.org/dist/Net-CardDAVTalk/>
167

ACKNOWLEDGEMENTS

170       Copyright 2015 FastMail Pty. Ltd.
171
172       This program is free software; you can redistribute it and/or modify it
173       under the terms of the the Artistic License (2.0). You may obtain a
174       copy of the full license at:
175
176       <http://www.perlfoundation.org/artistic_license_2_0>
177
178       Any use, modification, and distribution of the Standard or Modified
179       Versions is governed by this Artistic License. By using, modifying or
180       distributing the Package, you accept this license. Do not use, modify,
181       or distribute the Package, if you do not accept this license.
182
183       If your Modified Version has been derived from a Modified Version made
184       by someone other than you, you are nevertheless required to ensure that
185       your Modified Version complies with the requirements of this license.
186
187       This license does not grant you the right to use any trademark, service
188       mark, tradename, or logo of the Copyright Holder.
189
190       This license includes the non-exclusive, worldwide, free-of-charge
191       patent license to make, have made, use, offer to sell, sell, import and
192       otherwise transfer the Package with respect to any patent claims
193       licensable by the Copyright Holder that are necessarily infringed by
194       the Package. If you institute patent litigation (including a cross-
195       claim or counterclaim) against any party alleging that the Package
196       constitutes direct or contributory patent infringement, then this
197       Artistic License to you shall terminate on the date that such
198       litigation is filed.
199
200       Disclaimer of Warranty: THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER
201       AND CONTRIBUTORS "AS IS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES.
202       THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
203       PURPOSE, OR NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY
204       YOUR LOCAL LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR
205       CONTRIBUTOR WILL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR
206       CONSEQUENTIAL DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE,
207       EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
208
209
210
211perl v5.34.0                      2021-07-22               Net::CardDAVTalk(3)
Impressum