diff options
Diffstat (limited to 'lib/private/Calendar/CalendarQuery.php')
-rw-r--r-- | lib/private/Calendar/CalendarQuery.php | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/lib/private/Calendar/CalendarQuery.php b/lib/private/Calendar/CalendarQuery.php new file mode 100644 index 00000000000..4eb4a4cd636 --- /dev/null +++ b/lib/private/Calendar/CalendarQuery.php @@ -0,0 +1,100 @@ +<?php + +declare(strict_types=1); + +/** + * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ +namespace OC\Calendar; + +use OCP\Calendar\ICalendarQuery; + +class CalendarQuery implements ICalendarQuery { + public array $searchProperties = []; + + private ?string $searchPattern = null; + + private array $options = [ + 'types' => [], + ]; + + private ?int $offset = null; + + private ?int $limit = null; + + /** @var string[] */ + private array $calendarUris = []; + + public function __construct( + private string $principalUri, + ) { + } + + public function getPrincipalUri(): string { + return $this->principalUri; + } + + public function setPrincipalUri(string $principalUri): void { + $this->principalUri = $principalUri; + } + + public function setSearchPattern(string $pattern): void { + $this->searchPattern = $pattern; + } + + public function getSearchPattern(): ?string { + return $this->searchPattern; + } + + public function addSearchProperty(string $value): void { + $this->searchProperties[] = $value; + } + + public function getSearchProperties(): array { + return $this->searchProperties; + } + + public function addSearchCalendar(string $calendarUri): void { + $this->calendarUris[] = $calendarUri; + } + + /** + * @return string[] + */ + public function getCalendarUris(): array { + return $this->calendarUris; + } + + public function getLimit(): ?int { + return $this->limit; + } + + public function setLimit(int $limit): void { + $this->limit = $limit; + } + + public function getOffset(): ?int { + return $this->offset; + } + + public function setOffset(int $offset): void { + $this->offset = $offset; + } + + public function addType(string $value): void { + $this->options['types'][] = $value; + } + + public function setTimerangeStart(\DateTimeImmutable $startTime): void { + $this->options['timerange']['start'] = $startTime; + } + + public function setTimerangeEnd(\DateTimeImmutable $endTime): void { + $this->options['timerange']['end'] = $endTime; + } + + public function getOptions(): array { + return $this->options; + } +} |