summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorChristoph Wurst <christoph@winzerhof-wurst.at>2020-01-22 11:35:12 +0100
committerChristoph Wurst <christoph@winzerhof-wurst.at>2020-03-25 16:02:05 +0100
commitb3e194f38ecf2ec11aa5228937c4d6bdda28d5f0 (patch)
tree848aa2f5abaec6ee73693b227496997a829192a3 /lib
parent902adbe1592ed2828365f765c21acad654204c3b (diff)
downloadnextcloud-server-b3e194f38ecf2ec11aa5228937c4d6bdda28d5f0.tar.gz
nextcloud-server-b3e194f38ecf2ec11aa5228937c4d6bdda28d5f0.zip
Add a public event for contacts interaction
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
Diffstat (limited to 'lib')
-rw-r--r--lib/composer/composer/autoload_classmap.php1
-rw-r--r--lib/composer/composer/autoload_static.php1
-rw-r--r--lib/public/Contacts/Events/ContactInteractedWithEvent.php136
3 files changed, 138 insertions, 0 deletions
diff --git a/lib/composer/composer/autoload_classmap.php b/lib/composer/composer/autoload_classmap.php
index 94addec59c6..388c7906eb8 100644
--- a/lib/composer/composer/autoload_classmap.php
+++ b/lib/composer/composer/autoload_classmap.php
@@ -147,6 +147,7 @@ return array(
'OCP\\Contacts\\ContactsMenu\\IEntry' => $baseDir . '/lib/public/Contacts/ContactsMenu/IEntry.php',
'OCP\\Contacts\\ContactsMenu\\ILinkAction' => $baseDir . '/lib/public/Contacts/ContactsMenu/ILinkAction.php',
'OCP\\Contacts\\ContactsMenu\\IProvider' => $baseDir . '/lib/public/Contacts/ContactsMenu/IProvider.php',
+ 'OCP\\Contacts\\Events\\ContactInteractedWithEvent' => $baseDir . '/lib/public/Contacts/Events/ContactInteractedWithEvent.php',
'OCP\\Contacts\\IManager' => $baseDir . '/lib/public/Contacts/IManager.php',
'OCP\\DB\\ISchemaWrapper' => $baseDir . '/lib/public/DB/ISchemaWrapper.php',
'OCP\\DB\\QueryBuilder\\ICompositeExpression' => $baseDir . '/lib/public/DB/QueryBuilder/ICompositeExpression.php',
diff --git a/lib/composer/composer/autoload_static.php b/lib/composer/composer/autoload_static.php
index d8f68ccd5ea..cfc6d9842df 100644
--- a/lib/composer/composer/autoload_static.php
+++ b/lib/composer/composer/autoload_static.php
@@ -176,6 +176,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c
'OCP\\Contacts\\ContactsMenu\\IEntry' => __DIR__ . '/../../..' . '/lib/public/Contacts/ContactsMenu/IEntry.php',
'OCP\\Contacts\\ContactsMenu\\ILinkAction' => __DIR__ . '/../../..' . '/lib/public/Contacts/ContactsMenu/ILinkAction.php',
'OCP\\Contacts\\ContactsMenu\\IProvider' => __DIR__ . '/../../..' . '/lib/public/Contacts/ContactsMenu/IProvider.php',
+ 'OCP\\Contacts\\Events\\ContactInteractedWithEvent' => __DIR__ . '/../../..' . '/lib/public/Contacts/Events/ContactInteractedWithEvent.php',
'OCP\\Contacts\\IManager' => __DIR__ . '/../../..' . '/lib/public/Contacts/IManager.php',
'OCP\\DB\\ISchemaWrapper' => __DIR__ . '/../../..' . '/lib/public/DB/ISchemaWrapper.php',
'OCP\\DB\\QueryBuilder\\ICompositeExpression' => __DIR__ . '/../../..' . '/lib/public/DB/QueryBuilder/ICompositeExpression.php',
diff --git a/lib/public/Contacts/Events/ContactInteractedWithEvent.php b/lib/public/Contacts/Events/ContactInteractedWithEvent.php
new file mode 100644
index 00000000000..a21e17124c8
--- /dev/null
+++ b/lib/public/Contacts/Events/ContactInteractedWithEvent.php
@@ -0,0 +1,136 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * @copyright 2020 Christoph Wurst <christoph@winzerhof-wurst.at>
+ *
+ * @author 2020 Christoph Wurst <christoph@winzerhof-wurst.at>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+namespace OCP\Contacts\Events;
+
+use OCP\EventDispatcher\Event;
+use OCP\IUser;
+
+/**
+ * An event that allows apps to notify other components about an interaction
+ * between two users. This can be used to build better recommendations and
+ * suggestions in user interfaces.
+ *
+ * Emitters should add at least one identifier (uid, email, federated cloud ID)
+ * of the recipient of the interaction.
+ *
+ * @since 19.0.0
+ */
+class ContactInteractedWithEvent extends Event {
+
+ /** @var IUser */
+ private $actor;
+
+ /** @var string|null */
+ private $uid;
+
+ /** @var string|null */
+ private $email;
+
+ /** @var string|null */
+ private $federatedCloudId;
+
+ /**
+ * @param IUser $actor the user who started the interaction
+ *
+ * @since 19.0.0
+ */
+ public function __construct(IUser $actor) {
+ parent::__construct();
+ $this->actor = $actor;
+ }
+
+ /**
+ * @return IUser
+ * @since 19.0.0
+ */
+ public function getActor(): IUser {
+ return $this->actor;
+ }
+
+ /**
+ * @return string|null
+ * @since 19.0.0
+ */
+ public function getUid(): ?string {
+ return $this->uid;
+ }
+
+ /**
+ * Set the uid of the person interacted with, if known
+ *
+ * @param string $uid
+ *
+ * @return self
+ * @since 19.0.0
+ */
+ public function setUid(string $uid): self {
+ $this->uid = $uid;
+ return $this;
+ }
+
+ /**
+ * @return string|null
+ * @since 19.0.0
+ */
+ public function getEmail(): ?string {
+ return $this->email;
+ }
+
+ /**
+ * Set the email of the person interacted with, if known
+ *
+ * @param string $email
+ *
+ * @return self
+ * @since 19.0.0
+ */
+ public function setEmail(string $email): self {
+ $this->email = $email;
+ return $this;
+ }
+
+ /**
+ * @return string|null
+ * @since 19.0.0
+ */
+ public function getFederatedCloudId(): ?string {
+ return $this->federatedCloudId;
+ }
+
+ /**
+ * Set the federated cloud of the person interacted with, if known
+ *
+ * @param string $federatedCloudId
+ *
+ * @return self
+ * @since 19.0.0
+ */
+ public function setFederatedCloudId(string $federatedCloudId): self {
+ $this->federatedCloudId = $federatedCloudId;
+ return $this;
+ }
+
+}