Merge pull request #51082 from nextcloud/feat/dav/calendar-obj-event-webhooks

feat(dav)!: add webhook compatibility for calendar object events
This commit is contained in:
Edward Ly 2025-03-07 08:42:11 -08:00 committed by GitHub
commit 06119eda7a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
22 changed files with 168 additions and 338 deletions

View file

@ -255,12 +255,6 @@ return array(
'OCA\\DAV\\Events\\CalendarCreatedEvent' => $baseDir . '/../lib/Events/CalendarCreatedEvent.php',
'OCA\\DAV\\Events\\CalendarDeletedEvent' => $baseDir . '/../lib/Events/CalendarDeletedEvent.php',
'OCA\\DAV\\Events\\CalendarMovedToTrashEvent' => $baseDir . '/../lib/Events/CalendarMovedToTrashEvent.php',
'OCA\\DAV\\Events\\CalendarObjectCreatedEvent' => $baseDir . '/../lib/Events/CalendarObjectCreatedEvent.php',
'OCA\\DAV\\Events\\CalendarObjectDeletedEvent' => $baseDir . '/../lib/Events/CalendarObjectDeletedEvent.php',
'OCA\\DAV\\Events\\CalendarObjectMovedEvent' => $baseDir . '/../lib/Events/CalendarObjectMovedEvent.php',
'OCA\\DAV\\Events\\CalendarObjectMovedToTrashEvent' => $baseDir . '/../lib/Events/CalendarObjectMovedToTrashEvent.php',
'OCA\\DAV\\Events\\CalendarObjectRestoredEvent' => $baseDir . '/../lib/Events/CalendarObjectRestoredEvent.php',
'OCA\\DAV\\Events\\CalendarObjectUpdatedEvent' => $baseDir . '/../lib/Events/CalendarObjectUpdatedEvent.php',
'OCA\\DAV\\Events\\CalendarPublishedEvent' => $baseDir . '/../lib/Events/CalendarPublishedEvent.php',
'OCA\\DAV\\Events\\CalendarRestoredEvent' => $baseDir . '/../lib/Events/CalendarRestoredEvent.php',
'OCA\\DAV\\Events\\CalendarShareUpdatedEvent' => $baseDir . '/../lib/Events/CalendarShareUpdatedEvent.php',

View file

@ -270,12 +270,6 @@ class ComposerStaticInitDAV
'OCA\\DAV\\Events\\CalendarCreatedEvent' => __DIR__ . '/..' . '/../lib/Events/CalendarCreatedEvent.php',
'OCA\\DAV\\Events\\CalendarDeletedEvent' => __DIR__ . '/..' . '/../lib/Events/CalendarDeletedEvent.php',
'OCA\\DAV\\Events\\CalendarMovedToTrashEvent' => __DIR__ . '/..' . '/../lib/Events/CalendarMovedToTrashEvent.php',
'OCA\\DAV\\Events\\CalendarObjectCreatedEvent' => __DIR__ . '/..' . '/../lib/Events/CalendarObjectCreatedEvent.php',
'OCA\\DAV\\Events\\CalendarObjectDeletedEvent' => __DIR__ . '/..' . '/../lib/Events/CalendarObjectDeletedEvent.php',
'OCA\\DAV\\Events\\CalendarObjectMovedEvent' => __DIR__ . '/..' . '/../lib/Events/CalendarObjectMovedEvent.php',
'OCA\\DAV\\Events\\CalendarObjectMovedToTrashEvent' => __DIR__ . '/..' . '/../lib/Events/CalendarObjectMovedToTrashEvent.php',
'OCA\\DAV\\Events\\CalendarObjectRestoredEvent' => __DIR__ . '/..' . '/../lib/Events/CalendarObjectRestoredEvent.php',
'OCA\\DAV\\Events\\CalendarObjectUpdatedEvent' => __DIR__ . '/..' . '/../lib/Events/CalendarObjectUpdatedEvent.php',
'OCA\\DAV\\Events\\CalendarPublishedEvent' => __DIR__ . '/..' . '/../lib/Events/CalendarPublishedEvent.php',
'OCA\\DAV\\Events\\CalendarRestoredEvent' => __DIR__ . '/..' . '/../lib/Events/CalendarRestoredEvent.php',
'OCA\\DAV\\Events\\CalendarShareUpdatedEvent' => __DIR__ . '/..' . '/../lib/Events/CalendarShareUpdatedEvent.php',

View file

@ -30,12 +30,6 @@ use OCA\DAV\Events\AddressBookUpdatedEvent;
use OCA\DAV\Events\CalendarCreatedEvent;
use OCA\DAV\Events\CalendarDeletedEvent;
use OCA\DAV\Events\CalendarMovedToTrashEvent;
use OCA\DAV\Events\CalendarObjectCreatedEvent;
use OCA\DAV\Events\CalendarObjectDeletedEvent;
use OCA\DAV\Events\CalendarObjectMovedEvent;
use OCA\DAV\Events\CalendarObjectMovedToTrashEvent;
use OCA\DAV\Events\CalendarObjectRestoredEvent;
use OCA\DAV\Events\CalendarObjectUpdatedEvent;
use OCA\DAV\Events\CalendarPublishedEvent;
use OCA\DAV\Events\CalendarRestoredEvent;
use OCA\DAV\Events\CalendarShareUpdatedEvent;
@ -75,6 +69,12 @@ use OCP\AppFramework\Bootstrap\IBootContext;
use OCP\AppFramework\Bootstrap\IBootstrap;
use OCP\AppFramework\Bootstrap\IRegistrationContext;
use OCP\AppFramework\IAppContainer;
use OCP\Calendar\Events\CalendarObjectCreatedEvent;
use OCP\Calendar\Events\CalendarObjectDeletedEvent;
use OCP\Calendar\Events\CalendarObjectMovedEvent;
use OCP\Calendar\Events\CalendarObjectMovedToTrashEvent;
use OCP\Calendar\Events\CalendarObjectRestoredEvent;
use OCP\Calendar\Events\CalendarObjectUpdatedEvent;
use OCP\Calendar\IManager as ICalendarManager;
use OCP\Config\BeforePreferenceDeletedEvent;
use OCP\Config\BeforePreferenceSetEvent;

View file

@ -19,12 +19,6 @@ use OCA\DAV\Events\CachedCalendarObjectUpdatedEvent;
use OCA\DAV\Events\CalendarCreatedEvent;
use OCA\DAV\Events\CalendarDeletedEvent;
use OCA\DAV\Events\CalendarMovedToTrashEvent;
use OCA\DAV\Events\CalendarObjectCreatedEvent;
use OCA\DAV\Events\CalendarObjectDeletedEvent;
use OCA\DAV\Events\CalendarObjectMovedEvent;
use OCA\DAV\Events\CalendarObjectMovedToTrashEvent;
use OCA\DAV\Events\CalendarObjectRestoredEvent;
use OCA\DAV\Events\CalendarObjectUpdatedEvent;
use OCA\DAV\Events\CalendarPublishedEvent;
use OCA\DAV\Events\CalendarRestoredEvent;
use OCA\DAV\Events\CalendarShareUpdatedEvent;
@ -34,6 +28,12 @@ use OCA\DAV\Events\SubscriptionCreatedEvent;
use OCA\DAV\Events\SubscriptionDeletedEvent;
use OCA\DAV\Events\SubscriptionUpdatedEvent;
use OCP\AppFramework\Db\TTransactional;
use OCP\Calendar\Events\CalendarObjectCreatedEvent;
use OCP\Calendar\Events\CalendarObjectDeletedEvent;
use OCP\Calendar\Events\CalendarObjectMovedEvent;
use OCP\Calendar\Events\CalendarObjectMovedToTrashEvent;
use OCP\Calendar\Events\CalendarObjectRestoredEvent;
use OCP\Calendar\Events\CalendarObjectUpdatedEvent;
use OCP\Calendar\Exceptions\CalendarException;
use OCP\DB\Exception;
use OCP\DB\QueryBuilder\IQueryBuilder;

View file

@ -1,70 +0,0 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\DAV\Events;
use OCP\EventDispatcher\Event;
/**
* Class CalendarObjectDeletedEvent
*
* @package OCA\DAV\Events
* @since 20.0.0
*/
class CalendarObjectDeletedEvent extends Event {
/**
* CalendarObjectDeletedEvent constructor.
*
* @param int $calendarId
* @param array $calendarData
* @param array $shares
* @param array $objectData
* @since 20.0.0
*/
public function __construct(
private int $calendarId,
private array $calendarData,
private array $shares,
private array $objectData,
) {
parent::__construct();
}
/**
* @return int
* @since 20.0.0
*/
public function getCalendarId(): int {
return $this->calendarId;
}
/**
* @return array
* @since 20.0.0
*/
public function getCalendarData(): array {
return $this->calendarData;
}
/**
* @return array
* @since 20.0.0
*/
public function getShares(): array {
return $this->shares;
}
/**
* @return array
* @since 20.0.0
*/
public function getObjectData(): array {
return $this->objectData;
}
}

View file

@ -1,65 +0,0 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\DAV\Events;
use OCP\EventDispatcher\Event;
/**
* @since 22.0.0
*/
class CalendarObjectMovedToTrashEvent extends Event {
/**
* @param int $calendarId
* @param array $calendarData
* @param array $shares
* @param array $objectData
* @since 22.0.0
*/
public function __construct(
private int $calendarId,
private array $calendarData,
private array $shares,
private array $objectData,
) {
parent::__construct();
}
/**
* @return int
* @since 22.0.0
*/
public function getCalendarId(): int {
return $this->calendarId;
}
/**
* @return array
* @since 22.0.0
*/
public function getCalendarData(): array {
return $this->calendarData;
}
/**
* @return array
* @since 22.0.0
*/
public function getShares(): array {
return $this->shares;
}
/**
* @return array
* @since 22.0.0
*/
public function getObjectData(): array {
return $this->objectData;
}
}

View file

@ -1,65 +0,0 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\DAV\Events;
use OCP\EventDispatcher\Event;
/**
* @since 22.0.0
*/
class CalendarObjectRestoredEvent extends Event {
/**
* @param int $calendarId
* @param array $calendarData
* @param array $shares
* @param array $objectData
* @since 22.0.0
*/
public function __construct(
private int $calendarId,
private array $calendarData,
private array $shares,
private array $objectData,
) {
parent::__construct();
}
/**
* @return int
* @since 22.0.0
*/
public function getCalendarId(): int {
return $this->calendarId;
}
/**
* @return array
* @since 22.0.0
*/
public function getCalendarData(): array {
return $this->calendarData;
}
/**
* @return array
* @since 22.0.0
*/
public function getShares(): array {
return $this->shares;
}
/**
* @return array
* @since 22.0.0
*/
public function getObjectData(): array {
return $this->objectData;
}
}

View file

@ -1,70 +0,0 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\DAV\Events;
use OCP\EventDispatcher\Event;
/**
* Class CalendarObjectUpdatedEvent
*
* @package OCA\DAV\Events
* @since 20.0.0
*/
class CalendarObjectUpdatedEvent extends Event {
/**
* CalendarObjectUpdatedEvent constructor.
*
* @param int $calendarId
* @param array $calendarData
* @param array $shares
* @param array $objectData
* @since 20.0.0
*/
public function __construct(
private int $calendarId,
private array $calendarData,
private array $shares,
private array $objectData,
) {
parent::__construct();
}
/**
* @return int
* @since 20.0.0
*/
public function getCalendarId(): int {
return $this->calendarId;
}
/**
* @return array
* @since 20.0.0
*/
public function getCalendarData(): array {
return $this->calendarData;
}
/**
* @return array
* @since 20.0.0
*/
public function getShares(): array {
return $this->shares;
}
/**
* @return array
* @since 20.0.0
*/
public function getObjectData(): array {
return $this->objectData;
}
}

View file

@ -13,14 +13,14 @@ use OCA\DAV\DAV\Sharing\Plugin;
use OCA\DAV\Events\CalendarCreatedEvent;
use OCA\DAV\Events\CalendarDeletedEvent;
use OCA\DAV\Events\CalendarMovedToTrashEvent;
use OCA\DAV\Events\CalendarObjectCreatedEvent;
use OCA\DAV\Events\CalendarObjectDeletedEvent;
use OCA\DAV\Events\CalendarObjectMovedEvent;
use OCA\DAV\Events\CalendarObjectMovedToTrashEvent;
use OCA\DAV\Events\CalendarObjectRestoredEvent;
use OCA\DAV\Events\CalendarObjectUpdatedEvent;
use OCA\DAV\Events\CalendarRestoredEvent;
use OCA\DAV\Events\CalendarUpdatedEvent;
use OCP\Calendar\Events\CalendarObjectCreatedEvent;
use OCP\Calendar\Events\CalendarObjectDeletedEvent;
use OCP\Calendar\Events\CalendarObjectMovedEvent;
use OCP\Calendar\Events\CalendarObjectMovedToTrashEvent;
use OCP\Calendar\Events\CalendarObjectRestoredEvent;
use OCP\Calendar\Events\CalendarObjectUpdatedEvent;
use OCP\EventDispatcher\Event;
use OCP\EventDispatcher\IEventListener;
use Psr\Log\LoggerInterface;

View file

@ -9,9 +9,9 @@ declare(strict_types=1);
namespace OCA\DAV\Listener;
use OCA\DAV\Connector\Sabre\Principal;
use OCA\DAV\Events\CalendarObjectCreatedEvent;
use OCA\DAV\Events\CalendarObjectUpdatedEvent;
use OCA\DAV\Events\CalendarShareUpdatedEvent;
use OCP\Calendar\Events\CalendarObjectCreatedEvent;
use OCP\Calendar\Events\CalendarObjectUpdatedEvent;
use OCP\Contacts\Events\ContactInteractedWithEvent;
use OCP\EventDispatcher\Event;
use OCP\EventDispatcher\IEventDispatcher;

View file

@ -13,12 +13,12 @@ use OCA\DAV\CalDAV\Reminder\Backend as ReminderBackend;
use OCA\DAV\CalDAV\Reminder\ReminderService;
use OCA\DAV\Events\CalendarDeletedEvent;
use OCA\DAV\Events\CalendarMovedToTrashEvent;
use OCA\DAV\Events\CalendarObjectCreatedEvent;
use OCA\DAV\Events\CalendarObjectDeletedEvent;
use OCA\DAV\Events\CalendarObjectMovedToTrashEvent;
use OCA\DAV\Events\CalendarObjectRestoredEvent;
use OCA\DAV\Events\CalendarObjectUpdatedEvent;
use OCA\DAV\Events\CalendarRestoredEvent;
use OCP\Calendar\Events\CalendarObjectCreatedEvent;
use OCP\Calendar\Events\CalendarObjectDeletedEvent;
use OCP\Calendar\Events\CalendarObjectMovedToTrashEvent;
use OCP\Calendar\Events\CalendarObjectRestoredEvent;
use OCP\Calendar\Events\CalendarObjectUpdatedEvent;
use OCP\EventDispatcher\Event;
use OCP\EventDispatcher\IEventListener;
use Psr\Log\LoggerInterface;

View file

@ -12,8 +12,8 @@ use OCA\DAV\CalDAV\Activity\Backend as ActivityBackend;
use OCA\DAV\CalDAV\Activity\Provider\Event;
use OCA\DAV\DAV\Sharing\Plugin as SharingPlugin;
use OCA\DAV\Events\CalendarDeletedEvent;
use OCA\DAV\Events\CalendarObjectDeletedEvent;
use OCA\DAV\Listener\ActivityUpdaterListener;
use OCP\Calendar\Events\CalendarObjectDeletedEvent;
use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Test\TestCase;

View file

@ -9,9 +9,9 @@ declare(strict_types=1);
namespace OCA\DAV\Tests\Unit\Listener;
use OCA\DAV\Connector\Sabre\Principal;
use OCA\DAV\Events\CalendarObjectCreatedEvent;
use OCA\DAV\Events\CalendarShareUpdatedEvent;
use OCA\DAV\Listener\CalendarContactInteractionListener;
use OCP\Calendar\Events\CalendarObjectCreatedEvent;
use OCP\Contacts\Events\ContactInteractedWithEvent;
use OCP\EventDispatcher\Event;
use OCP\EventDispatcher\IEventDispatcher;

View file

@ -190,6 +190,13 @@ return array(
'OCP\\Broadcast\\Events\\IBroadcastEvent' => $baseDir . '/lib/public/Broadcast/Events/IBroadcastEvent.php',
'OCP\\Cache\\CappedMemoryCache' => $baseDir . '/lib/public/Cache/CappedMemoryCache.php',
'OCP\\Calendar\\BackendTemporarilyUnavailableException' => $baseDir . '/lib/public/Calendar/BackendTemporarilyUnavailableException.php',
'OCP\\Calendar\\Events\\AbstractCalendarObjectEvent' => $baseDir . '/lib/public/Calendar/Events/AbstractCalendarObjectEvent.php',
'OCP\\Calendar\\Events\\CalendarObjectCreatedEvent' => $baseDir . '/lib/public/Calendar/Events/CalendarObjectCreatedEvent.php',
'OCP\\Calendar\\Events\\CalendarObjectDeletedEvent' => $baseDir . '/lib/public/Calendar/Events/CalendarObjectDeletedEvent.php',
'OCP\\Calendar\\Events\\CalendarObjectMovedEvent' => $baseDir . '/lib/public/Calendar/Events/CalendarObjectMovedEvent.php',
'OCP\\Calendar\\Events\\CalendarObjectMovedToTrashEvent' => $baseDir . '/lib/public/Calendar/Events/CalendarObjectMovedToTrashEvent.php',
'OCP\\Calendar\\Events\\CalendarObjectRestoredEvent' => $baseDir . '/lib/public/Calendar/Events/CalendarObjectRestoredEvent.php',
'OCP\\Calendar\\Events\\CalendarObjectUpdatedEvent' => $baseDir . '/lib/public/Calendar/Events/CalendarObjectUpdatedEvent.php',
'OCP\\Calendar\\Exceptions\\CalendarException' => $baseDir . '/lib/public/Calendar/Exceptions/CalendarException.php',
'OCP\\Calendar\\IAvailabilityResult' => $baseDir . '/lib/public/Calendar/IAvailabilityResult.php',
'OCP\\Calendar\\ICalendar' => $baseDir . '/lib/public/Calendar/ICalendar.php',

View file

@ -239,6 +239,13 @@ class ComposerStaticInit749170dad3f5e7f9ca158f5a9f04f6a2
'OCP\\Broadcast\\Events\\IBroadcastEvent' => __DIR__ . '/../../..' . '/lib/public/Broadcast/Events/IBroadcastEvent.php',
'OCP\\Cache\\CappedMemoryCache' => __DIR__ . '/../../..' . '/lib/public/Cache/CappedMemoryCache.php',
'OCP\\Calendar\\BackendTemporarilyUnavailableException' => __DIR__ . '/../../..' . '/lib/public/Calendar/BackendTemporarilyUnavailableException.php',
'OCP\\Calendar\\Events\\AbstractCalendarObjectEvent' => __DIR__ . '/../../..' . '/lib/public/Calendar/Events/AbstractCalendarObjectEvent.php',
'OCP\\Calendar\\Events\\CalendarObjectCreatedEvent' => __DIR__ . '/../../..' . '/lib/public/Calendar/Events/CalendarObjectCreatedEvent.php',
'OCP\\Calendar\\Events\\CalendarObjectDeletedEvent' => __DIR__ . '/../../..' . '/lib/public/Calendar/Events/CalendarObjectDeletedEvent.php',
'OCP\\Calendar\\Events\\CalendarObjectMovedEvent' => __DIR__ . '/../../..' . '/lib/public/Calendar/Events/CalendarObjectMovedEvent.php',
'OCP\\Calendar\\Events\\CalendarObjectMovedToTrashEvent' => __DIR__ . '/../../..' . '/lib/public/Calendar/Events/CalendarObjectMovedToTrashEvent.php',
'OCP\\Calendar\\Events\\CalendarObjectRestoredEvent' => __DIR__ . '/../../..' . '/lib/public/Calendar/Events/CalendarObjectRestoredEvent.php',
'OCP\\Calendar\\Events\\CalendarObjectUpdatedEvent' => __DIR__ . '/../../..' . '/lib/public/Calendar/Events/CalendarObjectUpdatedEvent.php',
'OCP\\Calendar\\Exceptions\\CalendarException' => __DIR__ . '/../../..' . '/lib/public/Calendar/Exceptions/CalendarException.php',
'OCP\\Calendar\\IAvailabilityResult' => __DIR__ . '/../../..' . '/lib/public/Calendar/IAvailabilityResult.php',
'OCP\\Calendar\\ICalendar' => __DIR__ . '/../../..' . '/lib/public/Calendar/ICalendar.php',

View file

@ -3,29 +3,25 @@
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\DAV\Events;
namespace OCP\Calendar\Events;
use OCP\EventDispatcher\Event;
use OCP\EventDispatcher\IWebhookCompatibleEvent;
/**
* Class CalendarObjectCreatedEvent
*
* @package OCA\DAV\Events
* @since 20.0.0
* @since 32.0.0
*/
class CalendarObjectCreatedEvent extends Event {
abstract class AbstractCalendarObjectEvent extends Event implements IWebhookCompatibleEvent {
/**
* CalendarObjectCreatedEvent constructor.
*
* @param int $calendarId
* @param array $calendarData
* @param array $shares
* @param array $objectData
* @since 20.0.0
* @since 32.0.0
*/
public function __construct(
private int $calendarId,
@ -38,7 +34,7 @@ class CalendarObjectCreatedEvent extends Event {
/**
* @return int
* @since 20.0.0
* @since 32.0.0
*/
public function getCalendarId(): int {
return $this->calendarId;
@ -46,7 +42,7 @@ class CalendarObjectCreatedEvent extends Event {
/**
* @return array
* @since 20.0.0
* @since 32.0.0
*/
public function getCalendarData(): array {
return $this->calendarData;
@ -54,7 +50,7 @@ class CalendarObjectCreatedEvent extends Event {
/**
* @return array
* @since 20.0.0
* @since 32.0.0
*/
public function getShares(): array {
return $this->shares;
@ -62,9 +58,22 @@ class CalendarObjectCreatedEvent extends Event {
/**
* @return array
* @since 20.0.0
* @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(),
];
}
}

View file

@ -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 {
}

View file

@ -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 {
}

View file

@ -3,22 +3,20 @@
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\DAV\Events;
namespace OCP\Calendar\Events;
use OCP\EventDispatcher\Event;
use OCP\EventDispatcher\IWebhookCompatibleEvent;
/**
* Class CalendarObjectMovedEvent
*
* @package OCA\DAV\Events
* @since 25.0.0
* @since 32.0.0
*/
class CalendarObjectMovedEvent extends Event {
class CalendarObjectMovedEvent extends Event implements IWebhookCompatibleEvent {
/**
* @since 25.0.0
* @since 32.0.0
*/
public function __construct(
private int $sourceCalendarId,
@ -34,7 +32,7 @@ class CalendarObjectMovedEvent extends Event {
/**
* @return int
* @since 25.0.0
* @since 32.0.0
*/
public function getSourceCalendarId(): int {
return $this->sourceCalendarId;
@ -42,7 +40,7 @@ class CalendarObjectMovedEvent extends Event {
/**
* @return array
* @since 25.0.0
* @since 32.0.0
*/
public function getSourceCalendarData(): array {
return $this->sourceCalendarData;
@ -50,7 +48,7 @@ class CalendarObjectMovedEvent extends Event {
/**
* @return int
* @since 25.0.0
* @since 32.0.0
*/
public function getTargetCalendarId(): int {
return $this->targetCalendarId;
@ -58,7 +56,7 @@ class CalendarObjectMovedEvent extends Event {
/**
* @return array
* @since 25.0.0
* @since 32.0.0
*/
public function getTargetCalendarData(): array {
return $this->targetCalendarData;
@ -66,7 +64,7 @@ class CalendarObjectMovedEvent extends Event {
/**
* @return array
* @since 25.0.0
* @since 32.0.0
*/
public function getSourceShares(): array {
return $this->sourceShares;
@ -74,7 +72,7 @@ class CalendarObjectMovedEvent extends Event {
/**
* @return array
* @since 25.0.0
* @since 32.0.0
*/
public function getTargetShares(): array {
return $this->targetShares;
@ -82,9 +80,25 @@ class CalendarObjectMovedEvent extends Event {
/**
* @return array
* @since 25.0.0
* @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(),
];
}
}

View file

@ -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 {
}

View file

@ -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 {
}

View file

@ -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 {
}