migrate therinaldos.com data
Build & Deploy to DigitalOcean Space / build (push) Failing after 2m38s

This commit is contained in:
2024-05-05 15:50:45 -04:00
commit ef1ff240d4
23182 changed files with 3801898 additions and 0 deletions
@@ -0,0 +1,32 @@
<?php
/**
* @copyright 2018, Georg Ehrke <oc.list@georgehrke.com>
*
* @author Christoph Wurst <christoph@winzerhof-wurst.at>
* @author Georg Ehrke <oc.list@georgehrke.com>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCP\Calendar;
/**
* Class BackendTemporarilyUnavailableException
*
* @since 14.0.0
*/
class BackendTemporarilyUnavailableException extends \Exception {
}
@@ -0,0 +1,33 @@
<?php
declare(strict_types=1);
/**
* @copyright 2021 Anna Larch <anna.larch@gmx.net>
*
* @author Anna Larch <anna.larch@gmx.net>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
* License as published by the Free Software Foundation; either
* version 3 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
*
* You should have received a copy of the GNU Affero General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCP\Calendar\Exceptions;
use Exception;
/**
* @since 23.0.0
*/
class CalendarException extends Exception {
}
@@ -0,0 +1,84 @@
<?php
declare(strict_types=1);
/**
* @copyright 2017, Georg Ehrke <oc.list@georgehrke.com>
*
* @author Christoph Wurst <christoph@winzerhof-wurst.at>
* @author Georg Ehrke <oc.list@georgehrke.com>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCP\Calendar;
/**
* Interface ICalendar
*
* @since 13.0.0
*/
interface ICalendar {
/**
* @return string defining the technical unique key
* @since 13.0.0
*/
public function getKey(): string;
/**
* In comparison to getKey() this function returns a unique uri within the scope of the principal
* @since 24.0.0
*/
public function getUri(): string;
/**
* In comparison to getKey() this function returns a human readable (maybe translated) name
* @return null|string
* @since 13.0.0
*/
public function getDisplayName(): ?string;
/**
* Calendar color
* @return null|string
* @since 13.0.0
*/
public function getDisplayColor(): ?string;
/**
* @param string $pattern which should match within the $searchProperties
* @param array $searchProperties defines the properties within the query pattern should match
* @param array $options - optional parameters:
* ['timerange' => ['start' => new DateTime(...), 'end' => new DateTime(...)]]
* @param int|null $limit - limit number of search results
* @param int|null $offset - offset for paging of search results
* @return array an array of events/journals/todos which are arrays of key-value-pairs
* @since 13.0.0
*/
public function search(string $pattern, array $searchProperties = [], array $options = [], ?int $limit = null, ?int $offset = null): array;
/**
* @return int build up using \OCP\Constants
* @since 13.0.0
*/
public function getPermissions(): int;
/**
* Whether the calendar is deleted
* @since 26.0.0
*/
public function isDeleted(): bool;
}
@@ -0,0 +1,44 @@
<?php
declare(strict_types=1);
/**
* @copyright 2021 Anna Larch <anna.larch@gmx.net>
*
* @author Anna Larch <anna.larch@gmx.net>
*
* @license GNU AGPL version 3 or any later version
*
*
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCP\Calendar;
/**
* This interface defines a lazy loading mechanism for
* calendars for Public Consumption
*
* @since 23.0.0
*/
interface ICalendarProvider {
/**
* @param string $principalUri URI of the principal
* @param string[] $calendarUris optionally specify which calendars to load, or all if this array is empty
* @return ICalendar[]
* @since 23.0.0
*/
public function getCalendars(string $principalUri, array $calendarUris = []): array;
}
@@ -0,0 +1,138 @@
<?php
declare(strict_types=1);
/**
* @copyright 2021 Anna Larch <anna.larch@gmx.net>
*
* @author Anna Larch <anna.larch@gmx.net>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCP\Calendar;
use DateTimeImmutable;
/**
* Build a flexible, extendable query to the CalDAV backend
*
* @since 23.0.0
*/
interface ICalendarQuery {
/**
* @since 24.0.0
*/
public const SEARCH_PROPERTY_CATEGORIES = 'CATEGORIES';
/**
* @since 24.0.0
*/
public const SEARCH_PROPERTY_COMMENT = 'COMMENT';
/**
* @since 24.0.0
*/
public const SEARCH_PROPERTY_DESCRIPTION = 'DESCRIPTION';
/**
* @since 24.0.0
*/
public const SEARCH_PROPERTY_LOCATION = 'LOCATION';
/**
* @since 24.0.0
*/
public const SEARCH_PROPERTY_RESOURCES = 'RESOURCES';
/**
* @since 24.0.0
*/
public const SEARCH_PROPERTY_STATUS = 'STATUS';
/**
* @since 24.0.0
*/
public const SEARCH_PROPERTY_SUMMARY = 'SUMMARY';
/**
* @since 24.0.0
*/
public const SEARCH_PROPERTY_ATTENDEE = 'ATTENDEE';
/**
* @since 24.0.0
*/
public const SEARCH_PROPERTY_CONTACT = 'CONTACT';
/**
* @since 24.0.0
*/
public const SEARCH_PROPERTY_ORGANIZER = 'ORGANIZER';
/**
* Limit the results to the calendar uri(s)
*
* @since 23.0.0
*/
public function addSearchCalendar(string $calendarUri): void;
/**
* Search the property values
*
* @since 23.0.0
*/
public function setSearchPattern(string $pattern): void;
/**
* Define the property name(s) to search for
*
* Note: Nextcloud only indexes *some* properties. You can not search for
* arbitrary properties.
*
* @param string $value any of the ICalendarQuery::SEARCH_PROPERTY_* values
* @psalm-param ICalendarQuery::SEARCH_PROPERTY_* $value
*
* @since 23.0.0
*/
public function addSearchProperty(string $value): void;
/**
* @since 23.0.0
*/
public function addType(string $value): void;
/**
* @since 23.0.0
*/
public function setTimerangeStart(DateTimeImmutable $startTime): void;
/**
* @since 23.0.0
*/
public function setTimerangeEnd(DateTimeImmutable $endTime): void;
/**
* @since 23.0.0
*/
public function setLimit(int $limit): void;
/**
* @since 23.0.0
*/
public function setOffset(int $offset): void;
}
@@ -0,0 +1,42 @@
<?php
declare(strict_types=1);
/**
* @copyright 2021 Anna Larch <anna.larch@gmx.net>
*
* @author Anna Larch <anna.larch@gmx.net>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCP\Calendar;
use OCP\Calendar\Exceptions\CalendarException;
/**
* Extends the current ICalendar interface
* to add a public write method
*
* @since 23.0.0
*/
interface ICreateFromString extends ICalendar {
/**
* @since 23.0.0
*
* @throws CalendarException
*/
public function createFromString(string $name, string $calendarData): void;
}
@@ -0,0 +1,47 @@
<?php
declare(strict_types=1);
/**
* @copyright 2022 Anna Larch <anna.larch@gmx.net>
*
* @author Anna Larch <anna.larch@gmx.net>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCP\Calendar;
use OCP\Calendar\Exceptions\CalendarException;
/**
* Extends the current ICalendar interface
* to add a public write method to handle
* iMIP data
*
* @link https://www.rfc-editor.org/rfc/rfc6047
*
* @since 26.0.0
*/
interface IHandleImipMessage extends ICalendar {
/**
* Handle an iMIP VEvent for validation and processing
*
* @since 26.0.0
*
* @throws CalendarException on validation failure or calendar write error
*/
public function handleIMipMessage(string $name, string $calendarData): void;
}
@@ -0,0 +1,172 @@
<?php
declare(strict_types=1);
/**
* @copyright 2017, Georg Ehrke <oc.list@georgehrke.com>
*
* @author Christoph Wurst <christoph@winzerhof-wurst.at>
* @author Georg Ehrke <oc.list@georgehrke.com>
* @author Anna Larch <anna.larch@gmx.net>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCP\Calendar;
/**
* This class provides access to the Nextcloud CalDAV backend.
* Use this class exclusively if you want to access calendars.
*
* Events/Journals/Todos in general will be expressed as an array of key-value-pairs.
* The keys will match the property names defined in https://tools.ietf.org/html/rfc5545
*
* [
* 'id' => 123,
* 'type' => 'VEVENT',
* 'calendar-key' => 42,
* 'objects' => [
* [
* 'SUMMARY' => ['FooBar', []],
* 'DTSTART' => ['20171001T123456', ['TZID' => 'EUROPE/BERLIN']],
* 'DURATION' => ['P1D', []],
* 'ATTENDEE' => [
* ['mailto:bla@blub.com', ['CN' => 'Mr. Bla Blub']]
* ],
* 'VALARM' => [
* [
* 'TRIGGER' => ['19980101T050000Z', ['VALUE' => DATE-TIME]]
* ]
* ]
* ],
* ]
* ]
*
* @since 13.0.0
*/
interface IManager {
/**
* This function is used to search and find objects within the user's calendars.
* In case $pattern is empty all events/journals/todos will be returned.
*
* @param string $pattern which should match within the $searchProperties
* @param array $searchProperties defines the properties within the query pattern should match
* @param array $options - optional parameters:
* ['timerange' => ['start' => new DateTime(...), 'end' => new DateTime(...)]]
* @param integer|null $limit - limit number of search results
* @param integer|null $offset - offset for paging of search results
* @return array an array of events/journals/todos which are arrays of arrays of key-value-pairs
* @since 13.0.0
* @deprecated 23.0.0 use \OCP\Calendar\IManager::searchForPrincipal
*/
public function search($pattern, array $searchProperties = [], array $options = [], $limit = null, $offset = null);
/**
* Check if calendars are available
*
* @return bool true if enabled, false if not
* @since 13.0.0
* @deprecated 23.0.0
*/
public function isEnabled();
/**
* Registers a calendar
*
* @param ICalendar $calendar
* @return void
* @since 13.0.0
* @deprecated 23.0.0 use \OCP\AppFramework\Bootstrap\IRegistrationContext::registerCalendarProvider
*/
public function registerCalendar(ICalendar $calendar);
/**
* Unregisters a calendar
*
* @param ICalendar $calendar
* @return void
* @since 13.0.0
* @deprecated 23.0.0
*/
public function unregisterCalendar(ICalendar $calendar);
/**
* In order to improve lazy loading a closure can be registered which will be called in case
* calendars are actually requested
*
* @param \Closure $callable
* @return void
* @since 13.0.0
* @deprecated 23.0.0 use \OCP\AppFramework\Bootstrap\IRegistrationContext::registerCalendarProvider
*/
public function register(\Closure $callable);
/**
* @return ICalendar[]
* @since 13.0.0
* @deprecated 23.0.0 use \OCP\Calendar\IManager::getCalendarsForPrincipal
*/
public function getCalendars();
/**
* removes all registered calendar instances
*
* @return void
* @since 13.0.0
* @deprecated 23.0.0
*/
public function clear();
/**
* @param string $principalUri URI of the principal
* @param string[] $calendarUris optionally specify which calendars to load, or all if this array is empty
*
* @return ICalendar[]
* @since 23.0.0
*/
public function getCalendarsForPrincipal(string $principalUri, array $calendarUris = []): array;
/**
* Query a principals calendar(s)
*
* @param ICalendarQuery $query
* @return array[]
* @since 23.0.0
*/
public function searchForPrincipal(ICalendarQuery $query): array;
/**
* Build a new query for searchForPrincipal
*
* @return ICalendarQuery
* @since 23.0.0
*/
public function newQuery(string $principalUri) : ICalendarQuery;
/**
* Handle a iMip REPLY message
*
* @since 25.0.0
*/
public function handleIMipReply(string $principalUri, string $sender, string $recipient, string $calendarData): bool;
/**
* Handle a iMip CANCEL message
*
* @since 25.0.0
*/
public function handleIMipCancel(string $principalUri, string $sender, ?string $replyTo, string $recipient, string $calendarData): bool;
}
@@ -0,0 +1,62 @@
<?php
/**
* @copyright 2019, Georg Ehrke <oc.list@georgehrke.com>
*
* @author Georg Ehrke <oc.list@georgehrke.com>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCP\Calendar;
/**
* Interface IMetadataProvider
*
* Provider for metadata of a resource or a room
*
* @since 17.0.0
*/
interface IMetadataProvider {
/**
* Get a list of all metadata keys available for this room
*
* Room backends are allowed to return custom keys, beyond the ones
* defined in this class. If they do, they should make sure to use their
* own namespace.
*
* @return String[] - A list of available keys
* @since 17.0.0
*/
public function getAllAvailableMetadataKeys():array;
/**
* Get whether or not a metadata key is set for this room
*
* @param string $key - The key to check for
* @return bool - Whether or not key is available
* @since 17.0.0
*/
public function hasMetadataForKey(string $key):bool;
/**
* Get the value for a metadata key
*
* @param string $key - The key to check for
* @return string|null - The value stored for the key, null if no value stored
* @since 17.0.0
*/
public function getMetadataForKey(string $key):?string;
}
@@ -0,0 +1,69 @@
<?php
/**
* @copyright 2018, Georg Ehrke <oc.list@georgehrke.com>
*
* @author Christoph Wurst <christoph@winzerhof-wurst.at>
* @author Georg Ehrke <oc.list@georgehrke.com>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCP\Calendar\Resource;
use OCP\Calendar\BackendTemporarilyUnavailableException;
/**
* Interface IBackend
*
* @since 14.0.0
*/
interface IBackend {
/**
* get a list of all resources in this backend
*
* @throws BackendTemporarilyUnavailableException
* @return IResource[]
* @since 14.0.0
*/
public function getAllResources():array;
/**
* get a list of all resource identifiers in this backend
*
* @throws BackendTemporarilyUnavailableException
* @return string[]
* @since 14.0.0
*/
public function listAllResources():array;
/**
* get a resource by it's id
*
* @param string $id
* @throws BackendTemporarilyUnavailableException
* @return IResource|null
* @since 14.0.0
*/
public function getResource($id);
/**
* Get unique identifier of the backend
*
* @return string
* @since 14.0.0
*/
public function getBackendIdentifier():string;
}
@@ -0,0 +1,75 @@
<?php
declare(strict_types=1);
/**
* @copyright 2018, Georg Ehrke <oc.list@georgehrke.com>
*
* @author Georg Ehrke <oc.list@georgehrke.com>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCP\Calendar\Resource;
/**
* @since 14.0.0
* @deprecated 24.0.0
*/
interface IManager {
/**
* Registers a resource backend
*
* @param string $backendClass
* @return void
* @since 14.0.0
* @deprecated 24.0.0 use \OCP\AppFramework\Bootstrap\IRegistrationContext::registerCalendarResourceBackend
*/
public function registerBackend(string $backendClass);
/**
* Unregisters a resource backend
*
* @param string $backendClass
* @return void
* @since 14.0.0
* @deprecated 24.0.0
*/
public function unregisterBackend(string $backendClass);
/**
* @return IBackend[]
* @since 14.0.0
* @deprecated 24.0.0
*/
public function getBackends():array;
/**
* @param string $backendId
* @return IBackend|null
* @since 14.0.0
* @deprecated 24.0.0
*/
public function getBackend($backendId);
/**
* removes all registered backend instances
* @return void
* @since 14.0.0
* @deprecated 24.0.0
*/
public function clear();
}
@@ -0,0 +1,77 @@
<?php
/**
* @copyright 2018, Georg Ehrke <oc.list@georgehrke.com>
*
* @author Georg Ehrke <oc.list@georgehrke.com>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCP\Calendar\Resource;
/**
* Interface IResource
*
* @since 14.0.0
*/
interface IResource {
/**
* get the resource id
*
* This id has to be unique within the backend
*
* @return string
* @since 14.0.0
*/
public function getId():string;
/**
* get the display name for a resource
*
* @return string
* @since 14.0.0
*/
public function getDisplayName():string;
/**
* Get a list of groupIds that are allowed to access this resource
*
* If an empty array is returned, no group restrictions are
* applied.
*
* @return string[]
* @since 14.0.0
*/
public function getGroupRestrictions():array;
/**
* get email-address for resource
*
* The email address has to be globally unique
*
* @return string
* @since 14.0.0
*/
public function getEMail():string;
/**
* Get corresponding backend object
*
* @return IBackend
* @since 14.0.0
*/
public function getBackend():IBackend;
}
@@ -0,0 +1,115 @@
<?php
/**
* @copyright 2019, Georg Ehrke <oc.list@georgehrke.com>
*
* @author Georg Ehrke <oc.list@georgehrke.com>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCP\Calendar\Resource;
/**
* Interface IResourceMetadata
*
* This interface provides keys for common metadata.
* Resource Backends are not limited to this list and can provide
* any metadata they want.
*
* @since 17.0.0
*/
interface IResourceMetadata {
/**
* Type of resource
*
* Allowed values for this key include:
* - projector
* - tv
* - vehicle
* - other
*
* @since 17.0.0
*/
public const RESOURCE_TYPE = '{http://nextcloud.com/ns}resource-type';
/**
* If resource is of type vehicle, this describes the type of vehicle
*
* Allowed values:
* - bicycle
* - scooter
* - motorbike
* - car
* - plane
* - helicopter
* - other
*
* @since 17.0.0
*/
public const VEHICLE_TYPE = '{http://nextcloud.com/ns}resource-vehicle-type';
/**
* Make of the vehicle
*
* @since 17.0.0
*/
public const VEHICLE_MAKE = '{http://nextcloud.com/ns}resource-vehicle-make';
/**
* Model of the vehicle
*
* @since 17.0.0
*/
public const VEHICLE_MODEL = '{http://nextcloud.com/ns}resource-vehicle-model';
/**
* Whether or not the car is electric
*
* use '1' for electric, '0' for non-electric
*
* @since 17.0.0
*/
public const VEHICLE_IS_ELECTRIC = '{http://nextcloud.com/ns}resource-vehicle-is-electric';
/**
* Range of vehicle with a full tank
*
* @since 17.0.0
*/
public const VEHICLE_RANGE = '{http://nextcloud.com/ns}resource-vehicle-range';
/**
* Seating capacity of the vehicle
*
* @since 17.0.0
*/
public const VEHICLE_SEATING_CAPACITY = '{http://nextcloud.com/ns}resource-vehicle-seating-capacity';
/**
* Contact information about the person who is responsible to administer / maintain this resource
* This key stores a textual description of name and possible ways to contact the person
*
* @since 17.0.0
*/
public const CONTACT_PERSON = '{http://nextcloud.com/ns}resource-contact-person';
/**
* Link to the vcard of the contact person
*
* @since 17.0.0
*/
public const CONTACT_PERSON_VCARD = '{http://nextcloud.com/ns}resource-contact-person-vcard';
}
@@ -0,0 +1,69 @@
<?php
/**
* @copyright 2018, Georg Ehrke <oc.list@georgehrke.com>
*
* @author Christoph Wurst <christoph@winzerhof-wurst.at>
* @author Georg Ehrke <oc.list@georgehrke.com>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCP\Calendar\Room;
use OCP\Calendar\BackendTemporarilyUnavailableException;
/**
* Interface IBackend
*
* @since 14.0.0
*/
interface IBackend {
/**
* get a list of all rooms in this backend
*
* @throws BackendTemporarilyUnavailableException
* @return IRoom[]
* @since 14.0.0
*/
public function getAllRooms():array;
/**
* get a list of all room identifiers in this backend
*
* @throws BackendTemporarilyUnavailableException
* @return string[]
* @since 14.0.0
*/
public function listAllRooms():array;
/**
* get a room by it's id
*
* @param string $id
* @throws BackendTemporarilyUnavailableException
* @return IRoom|null
* @since 14.0.0
*/
public function getRoom($id);
/**
* Get unique identifier of the backend
*
* @return string
* @since 14.0.0
*/
public function getBackendIdentifier():string;
}
@@ -0,0 +1,75 @@
<?php
declare(strict_types=1);
/**
* @copyright 2018, Georg Ehrke <oc.list@georgehrke.com>
*
* @author Georg Ehrke <oc.list@georgehrke.com>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCP\Calendar\Room;
/**
* @since 14.0.0
* @deprecated 24.0.0
*/
interface IManager {
/**
* Registers a room backend
*
* @param string $backendClass
* @return void
* @since 14.0.0
* @deprecated 24.0.0 use \OC\AppFramework\Bootstrap\::registerCalendarRoomBackend
*/
public function registerBackend(string $backendClass);
/**
* Unregisters a room backend
*
* @param string $backendClass
* @return void
* @since 14.0.0
* @deprecated 24.0.0
*/
public function unregisterBackend(string $backendClass);
/**
* @return IBackend[]
* @since 14.0.0
* @deprecated 24.0.0
*/
public function getBackends():array;
/**
* @param string $backendId
* @return IBackend|null
* @since 14.0.0
* @deprecated 24.0.0
*/
public function getBackend($backendId);
/**
* removes all registered backend instances
* @return void
* @since 14.0.0
* @deprecated 24.0.0
*/
public function clear();
}
@@ -0,0 +1,77 @@
<?php
/**
* @copyright 2018, Georg Ehrke <oc.list@georgehrke.com>
*
* @author Georg Ehrke <oc.list@georgehrke.com>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCP\Calendar\Room;
/**
* Interface IRoom
*
* @since 14.0.0
*/
interface IRoom {
/**
* Get a unique ID for the room
*
* This id has to be unique within the backend
*
* @return string
* @since 14.0.0
*/
public function getId():string;
/**
* Get the display name for the room
*
* @return string
* @since 14.0.0
*/
public function getDisplayName():string;
/**
* Get a list of groupIds that are allowed to access this room
*
* If an empty array is returned, no group restrictions are
* applied.
*
* @return string[]
* @since 14.0.0
*/
public function getGroupRestrictions():array;
/**
* Get the email-address for the room
*
* The email-address has to be globally unique
*
* @return string
* @since 14.0.0
*/
public function getEMail():string;
/**
* Get corresponding backend object
*
* @return IBackend
* @since 14.0.0
*/
public function getBackend():IBackend;
}
@@ -0,0 +1,92 @@
<?php
/**
* @copyright 2019, Georg Ehrke <oc.list@georgehrke.com>
*
* @author Georg Ehrke <oc.list@georgehrke.com>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCP\Calendar\Room;
/**
* Interface IRoomMetadata
*
* This interface provides keys for common metadata.
* Room Backends are not limited to this list and can provide
* any metadata they want.
*
* @since 17.0.0
*/
interface IRoomMetadata {
/**
* Type of room
*
* Allowed values for this key are:
* - meeting-room
* - lecture-hall
* - seminar-room
* - other
*
* @since 17.0.0
*/
public const ROOM_TYPE = '{http://nextcloud.com/ns}room-type';
/**
* Seating capacity of the room
*
* @since 17.0.0
*/
public const CAPACITY = '{http://nextcloud.com/ns}room-seating-capacity';
/**
* The physical address of the building this room is located in
*
* @since 17.0.0
*/
public const BUILDING_ADDRESS = '{http://nextcloud.com/ns}room-building-address';
/**
* The story of the building this rooms is located in
*
* @since 17.0.0
*/
public const BUILDING_STORY = '{http://nextcloud.com/ns}room-building-story';
/**
* The room-number
*
* @since 17.0.0
*/
public const BUILDING_ROOM_NUMBER = '{http://nextcloud.com/ns}room-building-room-number';
/**
* Features provided by the room.
* This is a stringified list of features.
* Example: "PHONE,VIDEO-CONFERENCING"
*
* Standard features include:
* - PHONE: This room is fitted with a phone
* - VIDEO-CONFERENCING: This room is fitted with a video-conferencing system
* - TV: This room is fitted with a TV
* - PROJECTOR: This room is fitted with a projector
* - WHITEBOARD: This room is fitted with a whiteboard
* - WHEELCHAIR-ACCESSIBLE: This room is wheelchair-accessible
*
* @since 17.0.0
*/
public const FEATURES = '{http://nextcloud.com/ns}room-features';
}