aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Wurst <ChristophWurst@users.noreply.github.com>2022-10-31 15:59:25 +0100
committerGitHub <noreply@github.com>2022-10-31 15:59:25 +0100
commitaa81b87f26552bc3d49de6cf0babfe6a79c21af5 (patch)
tree2ef81f8542c9f1a72c3cb8293bec8b0e93a11974
parent1a33a4692dd49ef7710794bf58341f9af8b25b7c (diff)
parent06627c800c45672d57a255f494c5d47efd160aff (diff)
downloadnextcloud-server-aa81b87f26552bc3d49de6cf0babfe6a79c21af5.tar.gz
nextcloud-server-aa81b87f26552bc3d49de6cf0babfe6a79c21af5.zip
Merge pull request #34894 from nextcloud/enhancement/talk-api-delete-conversation
Add Talk converstation delete API
-rw-r--r--lib/private/Talk/Broker.php8
-rw-r--r--lib/public/Talk/IBroker.php11
-rw-r--r--lib/public/Talk/IConversation.php8
-rw-r--r--lib/public/Talk/ITalkBackend.php10
4 files changed, 37 insertions, 0 deletions
diff --git a/lib/private/Talk/Broker.php b/lib/private/Talk/Broker.php
index a686adeed04..12e6c5fb34b 100644
--- a/lib/private/Talk/Broker.php
+++ b/lib/private/Talk/Broker.php
@@ -106,4 +106,12 @@ class Broker implements IBroker {
$options ?? ConversationOptions::default()
);
}
+
+ public function deleteConversation(string $id): void {
+ if (!$this->hasBackend()) {
+ throw new NoBackendException("The Talk broker has no registered backend");
+ }
+
+ $this->backend->deleteConversation($id);
+ }
}
diff --git a/lib/public/Talk/IBroker.php b/lib/public/Talk/IBroker.php
index d28771544c8..705c39d2c01 100644
--- a/lib/public/Talk/IBroker.php
+++ b/lib/public/Talk/IBroker.php
@@ -71,4 +71,15 @@ interface IBroker {
public function createConversation(string $name,
array $moderators,
IConversationOptions $options = null): IConversation;
+
+ /**
+ * Delete a conversation by id
+ *
+ * @param string $id conversation id
+ *
+ * @return void
+ * @throws NoBackendException when Talk is not available
+ * @since 26.0.0
+ */
+ public function deleteConversation(string $id): void;
}
diff --git a/lib/public/Talk/IConversation.php b/lib/public/Talk/IConversation.php
index 43698b9069f..efa33c0b357 100644
--- a/lib/public/Talk/IConversation.php
+++ b/lib/public/Talk/IConversation.php
@@ -31,6 +31,14 @@ namespace OCP\Talk;
interface IConversation {
/**
+ * Get the unique token that identifies this conversation
+ *
+ * @return string
+ * @since 26.0.0
+ */
+ public function getId(): string;
+
+ /**
* Get the absolute URL to this conversation
*
* @return string
diff --git a/lib/public/Talk/ITalkBackend.php b/lib/public/Talk/ITalkBackend.php
index 700d5d8c4d3..605a15680d0 100644
--- a/lib/public/Talk/ITalkBackend.php
+++ b/lib/public/Talk/ITalkBackend.php
@@ -49,4 +49,14 @@ interface ITalkBackend {
public function createConversation(string $name,
array $moderators,
IConversationOptions $options): IConversation;
+
+ /**
+ * Delete a conversation by id
+ *
+ * @param string $id conversation id
+ *
+ * @return void
+ * @since 26.0.0
+ */
+ public function deleteConversation(string $id): void;
}