From 7ed79b64b43b3ca3fd2c04d68caa0b873d7b647e Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Mon, 22 Jun 2020 11:08:23 +0200 Subject: [PATCH 1/3] Fix undefined class "IAddressbook" on docs Signed-off-by: Joas Schilling --- lib/private/ContactsManager.php | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/private/ContactsManager.php b/lib/private/ContactsManager.php index 4084205b06d..0f041ca2e36 100644 --- a/lib/private/ContactsManager.php +++ b/lib/private/ContactsManager.php @@ -31,6 +31,8 @@ namespace OC { + use OCP\IAddressBook; + class ContactsManager implements \OCP\Contacts\IManager { /** @@ -112,16 +114,16 @@ namespace OC { } /** - * @param \OCP\IAddressBook $addressBook + * @param IAddressBook $addressBook */ - public function registerAddressBook(\OCP\IAddressBook $addressBook) { + public function registerAddressBook(IAddressBook $addressBook) { $this->addressBooks[$addressBook->getKey()] = $addressBook; } /** - * @param \OCP\IAddressBook $addressBook + * @param IAddressBook $addressBook */ - public function unregisterAddressBook(\OCP\IAddressBook $addressBook) { + public function unregisterAddressBook(IAddressBook $addressBook) { unset($this->addressBooks[$addressBook->getKey()]); } @@ -163,7 +165,7 @@ namespace OC { } /** - * @var \OCP\IAddressBook[] which holds all registered address books + * @var IAddressBook[] which holds all registered address books */ private $addressBooks = []; @@ -186,7 +188,7 @@ namespace OC { * Get (and load when needed) the address book for $key * * @param string $addressBookKey - * @return \OCP\IAddressBook + * @return IAddressBook */ protected function getAddressBook($addressBookKey) { $this->loadAddressBooks(); From 3997856d767ac1f9a94fb5c84ab20d527834b233 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Mon, 22 Jun 2020 11:09:32 +0200 Subject: [PATCH 2/3] Fix code style Signed-off-by: Joas Schilling --- lib/private/ContactsManager.php | 311 ++++++++++++++++---------------- 1 file changed, 155 insertions(+), 156 deletions(-) diff --git a/lib/private/ContactsManager.php b/lib/private/ContactsManager.php index 0f041ca2e36..c79d9e01af9 100644 --- a/lib/private/ContactsManager.php +++ b/lib/private/ContactsManager.php @@ -29,184 +29,183 @@ * */ -namespace OC { +namespace OC; - use OCP\IAddressBook; +use OCP\IAddressBook; - class ContactsManager implements \OCP\Contacts\IManager { +class ContactsManager implements \OCP\Contacts\IManager { - /** - * This function is used to search and find contacts within the users address books. - * In case $pattern is empty all contacts will be returned. - * - * @param string $pattern which should match within the $searchProperties - * @param array $searchProperties defines the properties within the query pattern should match - * @param array $options = array() to define the search behavior - * - 'escape_like_param' - If set to false wildcards _ and % are not escaped - * - 'limit' - Set a numeric limit for the search results - * - 'offset' - Set the offset for the limited search results - * @return array an array of contacts which are arrays of key-value-pairs - */ - public function search($pattern, $searchProperties = [], $options = []) { - $this->loadAddressBooks(); - $result = []; - foreach ($this->addressBooks as $addressBook) { - $r = $addressBook->search($pattern, $searchProperties, $options); - $contacts = []; - foreach ($r as $c) { - $c['addressbook-key'] = $addressBook->getKey(); - $contacts[] = $c; - } - $result = array_merge($result, $contacts); + /** + * This function is used to search and find contacts within the users address books. + * In case $pattern is empty all contacts will be returned. + * + * @param string $pattern which should match within the $searchProperties + * @param array $searchProperties defines the properties within the query pattern should match + * @param array $options = array() to define the search behavior + * - 'escape_like_param' - If set to false wildcards _ and % are not escaped + * - 'limit' - Set a numeric limit for the search results + * - 'offset' - Set the offset for the limited search results + * @return array an array of contacts which are arrays of key-value-pairs + */ + public function search($pattern, $searchProperties = [], $options = []) { + $this->loadAddressBooks(); + $result = []; + foreach ($this->addressBooks as $addressBook) { + $r = $addressBook->search($pattern, $searchProperties, $options); + $contacts = []; + foreach ($r as $c) { + $c['addressbook-key'] = $addressBook->getKey(); + $contacts[] = $c; } - - return $result; + $result = array_merge($result, $contacts); } - /** - * This function can be used to delete the contact identified by the given id - * - * @param object $id the unique identifier to a contact - * @param string $addressBookKey identifier of the address book in which the contact shall be deleted - * @return bool successful or not - */ - public function delete($id, $addressBookKey) { - $addressBook = $this->getAddressBook($addressBookKey); - if (!$addressBook) { - return null; - } - - if ($addressBook->getPermissions() & \OCP\Constants::PERMISSION_DELETE) { - return $addressBook->delete($id); - } + return $result; + } + /** + * This function can be used to delete the contact identified by the given id + * + * @param object $id the unique identifier to a contact + * @param string $addressBookKey identifier of the address book in which the contact shall be deleted + * @return bool successful or not + */ + public function delete($id, $addressBookKey) { + $addressBook = $this->getAddressBook($addressBookKey); + if (!$addressBook) { return null; } - /** - * This function is used to create a new contact if 'id' is not given or not present. - * Otherwise the contact will be updated by replacing the entire data set. - * - * @param array $properties this array if key-value-pairs defines a contact - * @param string $addressBookKey identifier of the address book in which the contact shall be created or updated - * @return array representing the contact just created or updated - */ - public function createOrUpdate($properties, $addressBookKey) { - $addressBook = $this->getAddressBook($addressBookKey); - if (!$addressBook) { - return null; - } + if ($addressBook->getPermissions() & \OCP\Constants::PERMISSION_DELETE) { + return $addressBook->delete($id); + } - if ($addressBook->getPermissions() & \OCP\Constants::PERMISSION_CREATE) { - return $addressBook->createOrUpdate($properties); - } + return null; + } + /** + * This function is used to create a new contact if 'id' is not given or not present. + * Otherwise the contact will be updated by replacing the entire data set. + * + * @param array $properties this array if key-value-pairs defines a contact + * @param string $addressBookKey identifier of the address book in which the contact shall be created or updated + * @return array representing the contact just created or updated + */ + public function createOrUpdate($properties, $addressBookKey) { + $addressBook = $this->getAddressBook($addressBookKey); + if (!$addressBook) { return null; } - /** - * Check if contacts are available (e.g. contacts app enabled) - * - * @return bool true if enabled, false if not - */ - public function isEnabled() { - return !empty($this->addressBooks) || !empty($this->addressBookLoaders); + if ($addressBook->getPermissions() & \OCP\Constants::PERMISSION_CREATE) { + return $addressBook->createOrUpdate($properties); } - /** - * @param IAddressBook $addressBook - */ - public function registerAddressBook(IAddressBook $addressBook) { - $this->addressBooks[$addressBook->getKey()] = $addressBook; + return null; + } + + /** + * Check if contacts are available (e.g. contacts app enabled) + * + * @return bool true if enabled, false if not + */ + public function isEnabled() { + return !empty($this->addressBooks) || !empty($this->addressBookLoaders); + } + + /** + * @param IAddressBook $addressBook + */ + public function registerAddressBook(IAddressBook $addressBook) { + $this->addressBooks[$addressBook->getKey()] = $addressBook; + } + + /** + * @param IAddressBook $addressBook + */ + public function unregisterAddressBook(IAddressBook $addressBook) { + unset($this->addressBooks[$addressBook->getKey()]); + } + + /** + * Return a list of the user's addressbooks display names + * ! The addressBook displayName are not unique, please use getUserAddressBooks + * + * @return array + * @since 6.0.0 + * @deprecated 16.0.0 - Use `$this->getUserAddressBooks()` instead + */ + public function getAddressBooks() { + $this->loadAddressBooks(); + $result = []; + foreach ($this->addressBooks as $addressBook) { + $result[$addressBook->getKey()] = $addressBook->getDisplayName(); } - /** - * @param IAddressBook $addressBook - */ - public function unregisterAddressBook(IAddressBook $addressBook) { - unset($this->addressBooks[$addressBook->getKey()]); + return $result; + } + + /** + * Return a list of the user's addressbooks + * + * @return IAddressBook[] + * @since 16.0.0 + */ + public function getUserAddressBooks(): array { + $this->loadAddressBooks(); + return $this->addressBooks; + } + + /** + * removes all registered address book instances + */ + public function clear() { + $this->addressBooks = []; + $this->addressBookLoaders = []; + } + + /** + * @var IAddressBook[] which holds all registered address books + */ + private $addressBooks = []; + + /** + * @var \Closure[] to call to load/register address books + */ + private $addressBookLoaders = []; + + /** + * In order to improve lazy loading a closure can be registered which will be called in case + * address books are actually requested + * + * @param \Closure $callable + */ + public function register(\Closure $callable) { + $this->addressBookLoaders[] = $callable; + } + + /** + * Get (and load when needed) the address book for $key + * + * @param string $addressBookKey + * @return IAddressBook + */ + protected function getAddressBook($addressBookKey) { + $this->loadAddressBooks(); + if (!array_key_exists($addressBookKey, $this->addressBooks)) { + return null; } - /** - * Return a list of the user's addressbooks display names - * ! The addressBook displayName are not unique, please use getUserAddressBooks - * - * @return array - * @since 6.0.0 - * @deprecated 16.0.0 - Use `$this->getUserAddressBooks()` instead - */ - public function getAddressBooks() { - $this->loadAddressBooks(); - $result = []; - foreach ($this->addressBooks as $addressBook) { - $result[$addressBook->getKey()] = $addressBook->getDisplayName(); - } + return $this->addressBooks[$addressBookKey]; + } - return $result; - } - - /** - * Return a list of the user's addressbooks - * - * @return IAddressBook[] - * @since 16.0.0 - */ - public function getUserAddressBooks(): array { - $this->loadAddressBooks(); - return $this->addressBooks; - } - - /** - * removes all registered address book instances - */ - public function clear() { - $this->addressBooks = []; - $this->addressBookLoaders = []; - } - - /** - * @var IAddressBook[] which holds all registered address books - */ - private $addressBooks = []; - - /** - * @var \Closure[] to call to load/register address books - */ - private $addressBookLoaders = []; - - /** - * In order to improve lazy loading a closure can be registered which will be called in case - * address books are actually requested - * - * @param \Closure $callable - */ - public function register(\Closure $callable) { - $this->addressBookLoaders[] = $callable; - } - - /** - * Get (and load when needed) the address book for $key - * - * @param string $addressBookKey - * @return IAddressBook - */ - protected function getAddressBook($addressBookKey) { - $this->loadAddressBooks(); - if (!array_key_exists($addressBookKey, $this->addressBooks)) { - return null; - } - - return $this->addressBooks[$addressBookKey]; - } - - /** - * Load all address books registered with 'register' - */ - protected function loadAddressBooks() { - foreach ($this->addressBookLoaders as $callable) { - $callable($this); - } - $this->addressBookLoaders = []; + /** + * Load all address books registered with 'register' + */ + protected function loadAddressBooks() { + foreach ($this->addressBookLoaders as $callable) { + $callable($this); } + $this->addressBookLoaders = []; } } From 404080abb418009fd3bdaacd091fecda70c06472 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Mon, 22 Jun 2020 11:10:44 +0200 Subject: [PATCH 3/3] More imports Signed-off-by: Joas Schilling --- lib/private/ContactsManager.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/private/ContactsManager.php b/lib/private/ContactsManager.php index c79d9e01af9..999b6597978 100644 --- a/lib/private/ContactsManager.php +++ b/lib/private/ContactsManager.php @@ -31,9 +31,11 @@ namespace OC; +use OCP\Constants; +use OCP\Contacts\IManager; use OCP\IAddressBook; -class ContactsManager implements \OCP\Contacts\IManager { +class ContactsManager implements IManager { /** * This function is used to search and find contacts within the users address books. @@ -76,7 +78,7 @@ class ContactsManager implements \OCP\Contacts\IManager { return null; } - if ($addressBook->getPermissions() & \OCP\Constants::PERMISSION_DELETE) { + if ($addressBook->getPermissions() & Constants::PERMISSION_DELETE) { return $addressBook->delete($id); } @@ -97,7 +99,7 @@ class ContactsManager implements \OCP\Contacts\IManager { return null; } - if ($addressBook->getPermissions() & \OCP\Constants::PERMISSION_CREATE) { + if ($addressBook->getPermissions() & Constants::PERMISSION_CREATE) { return $addressBook->createOrUpdate($properties); } @@ -131,7 +133,7 @@ class ContactsManager implements \OCP\Contacts\IManager { * Return a list of the user's addressbooks display names * ! The addressBook displayName are not unique, please use getUserAddressBooks * - * @return array + * @return IAddressBook[] * @since 6.0.0 * @deprecated 16.0.0 - Use `$this->getUserAddressBooks()` instead */