aboutsummaryrefslogtreecommitdiffstats
path: root/lib/public/Activity
diff options
context:
space:
mode:
Diffstat (limited to 'lib/public/Activity')
-rw-r--r--lib/public/Activity/IBulkConsumer.php24
-rw-r--r--lib/public/Activity/IEventMerger.php1
-rw-r--r--lib/public/Activity/IFilter.php1
-rw-r--r--lib/public/Activity/IManager.php14
-rw-r--r--lib/public/Activity/IProvider.php1
-rw-r--r--lib/public/Activity/ISetting.php1
6 files changed, 42 insertions, 0 deletions
diff --git a/lib/public/Activity/IBulkConsumer.php b/lib/public/Activity/IBulkConsumer.php
new file mode 100644
index 00000000000..9fdf3516b9a
--- /dev/null
+++ b/lib/public/Activity/IBulkConsumer.php
@@ -0,0 +1,24 @@
+<?php
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCP\Activity;
+
+/**
+ * Interface IBulkConsumer
+ *
+ * @since 32.0.0
+ */
+interface IBulkConsumer extends IConsumer {
+ /**
+ * @param IEvent $event
+ * @param array $affectedUserIds
+ * @param ISetting $setting
+ * @return void
+ * @since 32.0.0
+ */
+ public function bulkReceive(IEvent $event, array $affectedUserIds, ISetting $setting): void;
+}
diff --git a/lib/public/Activity/IEventMerger.php b/lib/public/Activity/IEventMerger.php
index e9355c88004..5d0f691f2d4 100644
--- a/lib/public/Activity/IEventMerger.php
+++ b/lib/public/Activity/IEventMerger.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/lib/public/Activity/IFilter.php b/lib/public/Activity/IFilter.php
index 75d53650127..008de6f5bca 100644
--- a/lib/public/Activity/IFilter.php
+++ b/lib/public/Activity/IFilter.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/lib/public/Activity/IManager.php b/lib/public/Activity/IManager.php
index 30020b6eced..d638b8b2c6b 100644
--- a/lib/public/Activity/IManager.php
+++ b/lib/public/Activity/IManager.php
@@ -52,6 +52,20 @@ interface IManager {
public function publish(IEvent $event): void;
/**
+ * Bulk publish an event for multiple users
+ * taking into account the app specific activity settings
+ *
+ * Make sure to call at least the following methods before sending an Event:
+ * - setApp()
+ * - setType()
+ *
+ * @param IEvent $event
+ * @throws IncompleteActivityException if required values have not been set
+ * @since 32.0.0
+ */
+ public function bulkPublish(IEvent $event, array $affectedUserIds, ISetting $setting): void;
+
+ /**
* In order to improve lazy loading a closure can be registered which will be called in case
* activity consumers are actually requested
*
diff --git a/lib/public/Activity/IProvider.php b/lib/public/Activity/IProvider.php
index 17fffbb26e2..dec4e7ade64 100644
--- a/lib/public/Activity/IProvider.php
+++ b/lib/public/Activity/IProvider.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/lib/public/Activity/ISetting.php b/lib/public/Activity/ISetting.php
index c5c5c523477..1304ab8c658 100644
--- a/lib/public/Activity/ISetting.php
+++ b/lib/public/Activity/ISetting.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later