From 22112bf71d7e43f57b6987ed35200a99472ea4d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Molakvo=C3=A6=20=28skjnldsv=29?= Date: Thu, 17 Jan 2019 11:13:45 +0100 Subject: [PATCH] Allow access to addressbook unique uri MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: John Molakvoæ (skjnldsv) Co-Authored-By: Joas Schilling --- apps/dav/lib/CardDAV/AddressBookImpl.php | 9 +++++++++ lib/private/ContactsManager.php | 16 ++++++++++++++++ lib/public/Contacts/IManager.php | 12 ++++++++++++ lib/public/IAddressBook.php | 7 +++++++ 4 files changed, 44 insertions(+) diff --git a/apps/dav/lib/CardDAV/AddressBookImpl.php b/apps/dav/lib/CardDAV/AddressBookImpl.php index 1aedd5d564..ae727b8544 100644 --- a/apps/dav/lib/CardDAV/AddressBookImpl.php +++ b/apps/dav/lib/CardDAV/AddressBookImpl.php @@ -75,6 +75,15 @@ class AddressBookImpl implements IAddressBook { return $this->addressBookInfo['id']; } + /** + * @return string defining the unique uri + * @since 16.0.0 + * @return string + */ + public function getUri(): string { + return $this->addressBookInfo['uri']; + } + /** * In comparison to getKey() this function returns a human readable (maybe translated) name * diff --git a/lib/private/ContactsManager.php b/lib/private/ContactsManager.php index 6a83a718d4..e279997e63 100644 --- a/lib/private/ContactsManager.php +++ b/lib/private/ContactsManager.php @@ -119,7 +119,12 @@ namespace OC { } /** + * 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(); @@ -131,6 +136,17 @@ namespace OC { 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 */ diff --git a/lib/public/Contacts/IManager.php b/lib/public/Contacts/IManager.php index ec399c37eb..e744a92d9e 100644 --- a/lib/public/Contacts/IManager.php +++ b/lib/public/Contacts/IManager.php @@ -154,13 +154,25 @@ interface IManager { public function register(\Closure $callable); /** + * Return a list of the user's addressbooks display names + * * @return array * @since 6.0.0 + * @deprecated 16.0.0 - Use `$this->getUserAddressBooks()` instead */ public function getAddressBooks(); + /** + * Return a list of the user's addressbooks + * + * @return IAddressBook[] + * @since 16.0.0 + */ + public function getUserAddressBooks(); + /** * removes all registered address book instances + * * @return void * @since 6.0.0 */ diff --git a/lib/public/IAddressBook.php b/lib/public/IAddressBook.php index 4739e6f0c5..c666311ffb 100644 --- a/lib/public/IAddressBook.php +++ b/lib/public/IAddressBook.php @@ -45,6 +45,13 @@ namespace OCP { */ public function getKey(); + /** + * @return string defining the unique uri + * @since 16.0.0 + * @return string + */ + public function getUri(): string; + /** * In comparison to getKey() this function returns a human readable (maybe translated) name * @return mixed