aboutsummaryrefslogtreecommitdiffstats
path: root/lib/public/Calendar/Events
diff options
context:
space:
mode:
Diffstat (limited to 'lib/public/Calendar/Events')
-rw-r--r--lib/public/Calendar/Events/AbstractCalendarObjectEvent.php79
-rw-r--r--lib/public/Calendar/Events/CalendarObjectCreatedEvent.php15
-rw-r--r--lib/public/Calendar/Events/CalendarObjectDeletedEvent.php15
-rw-r--r--lib/public/Calendar/Events/CalendarObjectMovedEvent.php104
-rw-r--r--lib/public/Calendar/Events/CalendarObjectMovedToTrashEvent.php15
-rw-r--r--lib/public/Calendar/Events/CalendarObjectRestoredEvent.php15
-rw-r--r--lib/public/Calendar/Events/CalendarObjectUpdatedEvent.php15
7 files changed, 258 insertions, 0 deletions
diff --git a/lib/public/Calendar/Events/AbstractCalendarObjectEvent.php b/lib/public/Calendar/Events/AbstractCalendarObjectEvent.php
new file mode 100644
index 00000000000..111ed096f78
--- /dev/null
+++ b/lib/public/Calendar/Events/AbstractCalendarObjectEvent.php
@@ -0,0 +1,79 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCP\Calendar\Events;
+
+use OCP\EventDispatcher\Event;
+use OCP\EventDispatcher\IWebhookCompatibleEvent;
+
+/**
+ * @since 32.0.0
+ */
+abstract class AbstractCalendarObjectEvent extends Event implements IWebhookCompatibleEvent {
+
+ /**
+ * @param int $calendarId
+ * @param array $calendarData
+ * @param array $shares
+ * @param array $objectData
+ * @since 32.0.0
+ */
+ public function __construct(
+ private int $calendarId,
+ private array $calendarData,
+ private array $shares,
+ private array $objectData,
+ ) {
+ parent::__construct();
+ }
+
+ /**
+ * @return int
+ * @since 32.0.0
+ */
+ public function getCalendarId(): int {
+ return $this->calendarId;
+ }
+
+ /**
+ * @return array
+ * @since 32.0.0
+ */
+ public function getCalendarData(): array {
+ return $this->calendarData;
+ }
+
+ /**
+ * @return array
+ * @since 32.0.0
+ */
+ public function getShares(): array {
+ return $this->shares;
+ }
+
+ /**
+ * @return array
+ * @since 32.0.0
+ */
+ public function getObjectData(): array {
+ return $this->objectData;
+ }
+
+ /**
+ * @return array
+ * @since 32.0.0
+ */
+ public function getWebhookSerializable(): array {
+ return [
+ 'calendarId' => $this->getCalendarId(),
+ 'calendarData' => $this->getCalendarData(),
+ 'shares' => $this->getShares(),
+ 'objectData' => $this->getObjectData(),
+ ];
+ }
+}
diff --git a/lib/public/Calendar/Events/CalendarObjectCreatedEvent.php b/lib/public/Calendar/Events/CalendarObjectCreatedEvent.php
new file mode 100644
index 00000000000..a4d0f40ec55
--- /dev/null
+++ b/lib/public/Calendar/Events/CalendarObjectCreatedEvent.php
@@ -0,0 +1,15 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCP\Calendar\Events;
+
+/**
+ * @since 32.0.0
+ */
+class CalendarObjectCreatedEvent extends AbstractCalendarObjectEvent {
+}
diff --git a/lib/public/Calendar/Events/CalendarObjectDeletedEvent.php b/lib/public/Calendar/Events/CalendarObjectDeletedEvent.php
new file mode 100644
index 00000000000..5466213584e
--- /dev/null
+++ b/lib/public/Calendar/Events/CalendarObjectDeletedEvent.php
@@ -0,0 +1,15 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCP\Calendar\Events;
+
+/**
+ * @since 32.0.0
+ */
+class CalendarObjectDeletedEvent extends AbstractCalendarObjectEvent {
+}
diff --git a/lib/public/Calendar/Events/CalendarObjectMovedEvent.php b/lib/public/Calendar/Events/CalendarObjectMovedEvent.php
new file mode 100644
index 00000000000..1c7df0e1ed5
--- /dev/null
+++ b/lib/public/Calendar/Events/CalendarObjectMovedEvent.php
@@ -0,0 +1,104 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCP\Calendar\Events;
+
+use OCP\EventDispatcher\Event;
+use OCP\EventDispatcher\IWebhookCompatibleEvent;
+
+/**
+ * @since 32.0.0
+ */
+class CalendarObjectMovedEvent extends Event implements IWebhookCompatibleEvent {
+ /**
+ * @since 32.0.0
+ */
+ public function __construct(
+ private int $sourceCalendarId,
+ private array $sourceCalendarData,
+ private int $targetCalendarId,
+ private array $targetCalendarData,
+ private array $sourceShares,
+ private array $targetShares,
+ private array $objectData,
+ ) {
+ parent::__construct();
+ }
+
+ /**
+ * @return int
+ * @since 32.0.0
+ */
+ public function getSourceCalendarId(): int {
+ return $this->sourceCalendarId;
+ }
+
+ /**
+ * @return array
+ * @since 32.0.0
+ */
+ public function getSourceCalendarData(): array {
+ return $this->sourceCalendarData;
+ }
+
+ /**
+ * @return int
+ * @since 32.0.0
+ */
+ public function getTargetCalendarId(): int {
+ return $this->targetCalendarId;
+ }
+
+ /**
+ * @return array
+ * @since 32.0.0
+ */
+ public function getTargetCalendarData(): array {
+ return $this->targetCalendarData;
+ }
+
+ /**
+ * @return array
+ * @since 32.0.0
+ */
+ public function getSourceShares(): array {
+ return $this->sourceShares;
+ }
+
+ /**
+ * @return array
+ * @since 32.0.0
+ */
+ public function getTargetShares(): array {
+ return $this->targetShares;
+ }
+
+ /**
+ * @return array
+ * @since 32.0.0
+ */
+ public function getObjectData(): array {
+ return $this->objectData;
+ }
+
+ /**
+ * @return array
+ * @since 32.0.0
+ */
+ public function getWebhookSerializable(): array {
+ return [
+ 'sourceCalendarId' => $this->getSourceCalendarId(),
+ 'sourceCalendarData' => $this->getSourceCalendarData(),
+ 'targetCalendarId' => $this->getTargetCalendarId(),
+ 'targetCalendarData' => $this->getTargetCalendarData(),
+ 'sourceShares' => $this->getSourceShares(),
+ 'targetShares' => $this->getTargetShares(),
+ 'objectData' => $this->getObjectData(),
+ ];
+ }
+}
diff --git a/lib/public/Calendar/Events/CalendarObjectMovedToTrashEvent.php b/lib/public/Calendar/Events/CalendarObjectMovedToTrashEvent.php
new file mode 100644
index 00000000000..ffbd7b0375a
--- /dev/null
+++ b/lib/public/Calendar/Events/CalendarObjectMovedToTrashEvent.php
@@ -0,0 +1,15 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCP\Calendar\Events;
+
+/**
+ * @since 32.0.0
+ */
+class CalendarObjectMovedToTrashEvent extends AbstractCalendarObjectEvent {
+}
diff --git a/lib/public/Calendar/Events/CalendarObjectRestoredEvent.php b/lib/public/Calendar/Events/CalendarObjectRestoredEvent.php
new file mode 100644
index 00000000000..7890e3ca5b3
--- /dev/null
+++ b/lib/public/Calendar/Events/CalendarObjectRestoredEvent.php
@@ -0,0 +1,15 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCP\Calendar\Events;
+
+/**
+ * @since 32.0.0
+ */
+class CalendarObjectRestoredEvent extends AbstractCalendarObjectEvent {
+}
diff --git a/lib/public/Calendar/Events/CalendarObjectUpdatedEvent.php b/lib/public/Calendar/Events/CalendarObjectUpdatedEvent.php
new file mode 100644
index 00000000000..c06b2b8198f
--- /dev/null
+++ b/lib/public/Calendar/Events/CalendarObjectUpdatedEvent.php
@@ -0,0 +1,15 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCP\Calendar\Events;
+
+/**
+ * @since 32.0.0
+ */
+class CalendarObjectUpdatedEvent extends AbstractCalendarObjectEvent {
+}