mirror of
https://github.com/OpenXE-org/OpenXE.git
synced 2024-12-27 23:20:28 +01:00
143 lines
3.7 KiB
PHP
143 lines
3.7 KiB
PHP
|
<?php
|
||
|
|
||
|
declare(strict_types=1);
|
||
|
|
||
|
namespace Xentral\Modules\GoogleCalendar\Client;
|
||
|
|
||
|
use DateTimeInterface;
|
||
|
use Xentral\Modules\GoogleApi\Data\GoogleAccountData;
|
||
|
use Xentral\Modules\GoogleCalendar\Data\GoogleCalendarColorCollection;
|
||
|
use Xentral\Modules\GoogleCalendar\Data\GoogleCalendarEventData;
|
||
|
use Xentral\Modules\GoogleCalendar\Data\GoogleCalendarListItem;
|
||
|
use Xentral\Modules\GoogleCalendar\Exception\GoogleCalendarApiException;
|
||
|
|
||
|
interface GoogleCalendarClientInterface
|
||
|
{
|
||
|
/** @var string SENDUPDATES_DEFAULT */
|
||
|
public const SENDUPDATES_DEFAULT = 'default';
|
||
|
|
||
|
/** @var string SENDUPDATES_ALL */
|
||
|
public const SENDUPDATES_ALL = 'all';
|
||
|
|
||
|
/** @var string SENDUPDATES_EXTERNALONLY */
|
||
|
public const SENDUPDATES_EXTERNALONLY = 'externalOnly';
|
||
|
|
||
|
/** @var string SENDUPDATES_NONE */
|
||
|
public const SENDUPDATES_NONE = 'none';
|
||
|
|
||
|
/**
|
||
|
* @return GoogleAccountData
|
||
|
*/
|
||
|
public function getAccount(): GoogleAccountData;
|
||
|
|
||
|
/**
|
||
|
* @param array $filters
|
||
|
*
|
||
|
* @return GoogleCalendarListItem[]
|
||
|
*/
|
||
|
public function getCalendarList(array $filters = []): array;
|
||
|
|
||
|
/**
|
||
|
* @return GoogleCalendarListItem
|
||
|
*/
|
||
|
public function getPrimaryCalendar(): GoogleCalendarListItem;
|
||
|
|
||
|
/**
|
||
|
* @param string $calendar
|
||
|
* @param DateTimeInterface $modifiedSince
|
||
|
*
|
||
|
* @return GoogleCalendarEventData[]
|
||
|
*/
|
||
|
public function getModifiedEvents(string $calendar, DateTimeInterface $modifiedSince): array;
|
||
|
|
||
|
|
||
|
/**
|
||
|
* @param string $calendar
|
||
|
* @param DateTimeInterface $from
|
||
|
* @param DateTimeInterface $to
|
||
|
*
|
||
|
* @return GoogleCalendarEventData[]
|
||
|
*/
|
||
|
public function getAbsoluteEvents(string $calendar, DateTimeInterface $from, DateTimeInterface $to): array;
|
||
|
|
||
|
/**
|
||
|
* @param string $eventId
|
||
|
*
|
||
|
* @throws GoogleCalendarApiException
|
||
|
*
|
||
|
* @return GoogleCalendarEventData
|
||
|
*/
|
||
|
public function getEvent($eventId): GoogleCalendarEventData;
|
||
|
|
||
|
/**
|
||
|
* @param string $calendar calendar identifier
|
||
|
* @param array $filters
|
||
|
*
|
||
|
* @return GoogleCalendarEventData[]
|
||
|
*/
|
||
|
public function getEventList(string $calendar, $filters = []): array;
|
||
|
|
||
|
/**
|
||
|
* @param GoogleCalendarEventData $event
|
||
|
* @param string $sendUpdates
|
||
|
*
|
||
|
* @return GoogleCalendarEventData
|
||
|
*/
|
||
|
public function insertEvent(
|
||
|
GoogleCalendarEventData $event,
|
||
|
$sendUpdates = self::SENDUPDATES_DEFAULT
|
||
|
): GoogleCalendarEventData;
|
||
|
|
||
|
/**
|
||
|
* @param GoogleCalendarEventData $event
|
||
|
* @param string $sendUpdates
|
||
|
*
|
||
|
* @return GoogleCalendarEventData
|
||
|
*/
|
||
|
public function updateEvent(
|
||
|
GoogleCalendarEventData $event,
|
||
|
$sendUpdates = self::SENDUPDATES_DEFAULT
|
||
|
): GoogleCalendarEventData;
|
||
|
|
||
|
/**
|
||
|
* @param GoogleCalendarEventData $event
|
||
|
* @param string $targetCalendar
|
||
|
* @param string $sendUpdates
|
||
|
*
|
||
|
* @return GoogleCalendarEventData
|
||
|
*/
|
||
|
public function moveEvent(
|
||
|
GoogleCalendarEventData $event,
|
||
|
$targetCalendar,
|
||
|
$sendUpdates = self::SENDUPDATES_DEFAULT
|
||
|
): GoogleCalendarEventData;
|
||
|
|
||
|
/**
|
||
|
* @param string $eventId
|
||
|
* @param string $sendUpdates
|
||
|
*
|
||
|
* @return bool
|
||
|
*/
|
||
|
public function deleteEvent(
|
||
|
$eventId,
|
||
|
$sendUpdates = self::SENDUPDATES_DEFAULT
|
||
|
): bool;
|
||
|
|
||
|
/**
|
||
|
* @param string $calendar
|
||
|
*
|
||
|
* @return bool
|
||
|
*/
|
||
|
public function canAccessCalendar(string $calendar): bool;
|
||
|
|
||
|
/**
|
||
|
* @return array
|
||
|
*/
|
||
|
public function getUserSettings(): array;
|
||
|
|
||
|
/**
|
||
|
* @return GoogleCalendarColorCollection
|
||
|
*/
|
||
|
public function getAvailableColors(): GoogleCalendarColorCollection;
|
||
|
}
|