From dc6e93afaa0021674a94e409c41a49b1802542e6 Mon Sep 17 00:00:00 2001 From: Nivesh Krishna Date: Wed, 16 Aug 2023 00:02:06 +0530 Subject: [PATCH] create addressbook if not already exists --- plugins/nextcloud/NextcloudAddressBook.php | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/plugins/nextcloud/NextcloudAddressBook.php b/plugins/nextcloud/NextcloudAddressBook.php index 2bfb5027f..e4ce6711c 100644 --- a/plugins/nextcloud/NextcloudAddressBook.php +++ b/plugins/nextcloud/NextcloudAddressBook.php @@ -12,14 +12,17 @@ class NextcloudAddressBook implements \RainLoop\Providers\AddressBook\AddressBoo function __construct() { $this->contactsManager = \OC::$server->getContactsManager(); - foreach ($this->contactsManager->getUserAddressBooks() as $addressbook) { - if ($addressbook->getUri() !== self::URI) { - $this->contactsManager->unregisterAddressBook($addressbook); - } - else { - $this->key = $addressbook->getKey(); - } + $uid = \OC::$server->getUserSession()->getUser()->getUID(); + $cardDavBackend = \OC::$server->get(\OCA\DAV\CardDAV\CardDavBackend::class); + $principalUri = 'principals/users/'. $uid; + $addressBookId = $cardDavBackend->getAddressBooksByUri($principalUri, self::URI)->id; + if (empty($addressBookId)) { + $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 {