I'm a bit unclear how the module is suppose to work so not clear if
these are bugs or by design.
get_contacts() doesn't work the same as get_contact() -- there's no
mapping done in get_contact() like there is in get_contacts(). So,
fetching a contact via get_contacts() doesn't return the same data as
get_contact(). I would expect that you should be able to get a contact
and then update that contact w/o any changes.
Groups are forced as an array when fetching contacts, but set as a
single element when updating.
if ( $contact->{groupMembershipInfo} ) {
$data->{'atom:entry'}->{'gContact:groupMembershipInfo'} = {
deleted => 'false',
href => $contact->{groupMembershipInfo}
};
Contacts, of course, can be associated with more than one group.