create addressbook if not already exists

This commit is contained in:
Nivesh Krishna 2023-08-16 00:02:06 +05:30
parent 147ba65a35
commit dc6e93afaa
No known key found for this signature in database
GPG key ID: CCB55BBCA0E73319

View file

@ -12,14 +12,17 @@ class NextcloudAddressBook implements \RainLoop\Providers\AddressBook\AddressBoo
function __construct() function __construct()
{ {
$this->contactsManager = \OC::$server->getContactsManager(); $this->contactsManager = \OC::$server->getContactsManager();
foreach ($this->contactsManager->getUserAddressBooks() as $addressbook) { $uid = \OC::$server->getUserSession()->getUser()->getUID();
if ($addressbook->getUri() !== self::URI) { $cardDavBackend = \OC::$server->get(\OCA\DAV\CardDAV\CardDavBackend::class);
$this->contactsManager->unregisterAddressBook($addressbook); $principalUri = 'principals/users/'. $uid;
} $addressBookId = $cardDavBackend->getAddressBooksByUri($principalUri, self::URI)->id;
else { if (empty($addressBookId)) {
$this->key = $addressbook->getKey(); $addressBookId = $cardDavBackend->createAddressBook($principalUri, self::URI, array_filter([
} '{DAV:}displayname' => 'Webmail',
'{urn:ietf:params:xml:ns:carddav}addressbook-description' => 'Recipients from snappymail',
]));
} }
$this->key = $addressBookId;
} }
public function IsSupported() : bool { public function IsSupported() : bool {