]> source.dussan.org Git - nextcloud-server.git/commitdiff
Add a public event for contacts interaction
authorChristoph Wurst <christoph@winzerhof-wurst.at>
Wed, 22 Jan 2020 10:35:12 +0000 (11:35 +0100)
committerChristoph Wurst <christoph@winzerhof-wurst.at>
Wed, 25 Mar 2020 15:02:05 +0000 (16:02 +0100)
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
lib/composer/composer/autoload_classmap.php
lib/composer/composer/autoload_static.php
lib/public/Contacts/Events/ContactInteractedWithEvent.php [new file with mode: 0644]

index 94addec59c6b4edcc0aac526c1736fd8d51373c2..388c7906eb81c7ae2311d76ec6e7aa0b3b93d4d5 100644 (file)
@@ -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',
index d8f68ccd5ea388b5ba6385ba86e6e13dbc39cc82..cfc6d9842dfa765524222b1cc4f785a648ffd098 100644 (file)
@@ -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 (file)
index 0000000..a21e171
--- /dev/null
@@ -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;
+       }
+
+}