feat(dav): add webhook compatibility for calendar object events
Signed-off-by: Edward Ly <contact@edward.ly>pull/51082/head
parent
bb6b462690
commit
dd181f4b2a
@ -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(),
|
||||
];
|
||||
}
|
||||
}
|
||||
@ -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 {
|
||||
}
|
||||
@ -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 {
|
||||
}
|
||||
@ -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(),
|
||||
];
|
||||
}
|
||||
}
|
||||
@ -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 {
|
||||
}
|
||||
@ -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 {
|
||||
}
|
||||
@ -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 {
|
||||
}
|
||||
Loading…
Reference in New Issue