/** * @param ICalendar $calendar */ public function __construct(ICalendar $calendar) { $this->calendar = $calendar; $backend = $this->calendar->getBackend(); if (!$backend instanceof IBackend) { $identifier = implode('::', [$this->calendar->getUserId(), '?', $this->calendar->getPrivateUri()]); $this->logger->error('Backend of calendar \'' . $identifier . '\' not found'); } else { $this->cache = $backend->getObjectCache($calendar); try { $this->objectAPI = $backend->getObjectAPI($calendar); } catch (BackendUtils\Exception $ex) { //TODO } } }
/** * @param IDBConnection $db * @param ICalendar $calendar * @param ObjectFactory $factory * @param string $calendarTableName * @param string $objectTableName */ public function __construct(IDBConnection $db, ICalendar $calendar, ObjectFactory $factory, $calendarTableName = 'clndr_calendars', $objectTableName = 'clndr_objects') { parent::__construct($db, $calendarTableName, $objectTableName); $this->calendar = $calendar; $this->calendarId = parent::getCalendarId($calendar->getPrivateUri(), $calendar->getUserId()); $this->factory = $factory; }
/** * rescan objects that changed and update the corresponding cached calendars */ public function propagateChanges() { $changes = $this->getChanges(); $this->resetChanges(); if (empty($changes)) { return; } $backend = $this->calendar->getBackend(); $scanner = $backend->getObjectScanner($this->calendar); foreach ($changes as $objectUri) { $scanner->scanObject($objectUri); } $calendarScanner = $backend->getBackendCollection()->getScanner(); $backendId = $this->calendar->getBackend()->getId(); $privateUri = $this->calendar->getPrivateUri(); $userId = $this->calendar->getUserId(); $calendarScanner->scanCalendar($backendId, $privateUri, $userId); }
/** * @param IManager $contactsManager * @param ICalendar $calendar * @param IL10N $l10n * @param ObjectFactory $objectFactory */ public function __construct(IManager $contactsManager, ICalendar $calendar, IL10N $l10n, ObjectFactory $objectFactory) { parent::__construct($contactsManager); $this->calendar = $calendar; $this->l10n = $l10n; $this->factory = $objectFactory; $this->uri = $calendar->getPrivateUri(); $this->userId = $calendar->getUserId(); }
/** * Patch a calendar from request * @param \OCA\Calendar\ICalendar $newCalendar * @param \OCA\Calendar\ICalendar $oldCalendar * @return \OCA\Calendar\ICalendar */ public function patch(ICalendar $newCalendar, ICalendar $oldCalendar) { $newCalendar->setId($oldCalendar->getId()); $newCalendar->setPrivateUri($oldCalendar->getPrivateUri()); $this->resetReadOnlyProperties($newCalendar, $oldCalendar); if ($newCalendar->doesContainNullValues()) { $newCalendar = $oldCalendar->overwriteWith($newCalendar); } /** @var \OCA\Calendar\ICalendar $newCalendar */ return parent::update($newCalendar); }
/** * @param ICalendar &$calendar * @param callable $doesExist * @param boolean $isPublicUri */ public static function generateURI(ICalendar &$calendar, \closure $doesExist, $isPublicUri = true) { if ($isPublicUri === true) { $uri = $calendar->getPublicUri(); } else { $uri = $calendar->getPrivateUri(); } if ($uri === null) { $uri = mb_strtolower($calendar->getDisplayname()); } $uri = CalendarUtility::slugify($uri); while ($doesExist($uri)) { $newUri = self::suggestUri($uri); if ($newUri === $uri) { break; } $uri = $newUri; } if ($isPublicUri) { $calendar->setPublicUri($uri); } else { $calendar->setPrivateUri($uri); } }
/** * {@inheritDoc} */ public function hasUpdated(ICalendar $calendar) { $privateUri = $calendar->getPrivateUri(); $userId = $calendar->getUserId(); $oldCalendar = $this->find($privateUri, $userId); return $calendar->getCtag() !== $oldCalendar->getCtag(); }
/** * Delete a calendar * @param \OCA\Calendar\ICalendar $calendar * @throws \OCA\Calendar\BusinessLayer\Exception */ public function delete(ICalendar $calendar) { try { $api = $calendar->getBackend()->getCalendarAPI(); if (!$api instanceof BackendUtils\ICalendarAPIDelete) { throw new Exception('Backend does not support deleting calendars!'); } $backendId = $calendar->getBackend()->getId(); $privateUri = $calendar->getPrivateUri(); $userId = $calendar->getUserId(); $api->delete($privateUri, $userId); $this->updater->remove($backendId, $privateUri, $userId); } catch (BackendUtils\Exception $ex) { \OC::$server->getLogger()->debug($ex->getMessage()); throw Exception::fromException($ex); } }
/** * @param ICalendar $calendar * @return array */ private function getCalendarSqlParams(ICalendar $calendar) { return [$calendar->getUserId(), $calendar->getDisplayname(), $calendar->getPrivateUri(), $calendar->getEnabled(), $calendar->getCtag(), $calendar->getOrder(), $calendar->getColor(), $this->getTypes($calendar->getComponents(), 'string')]; }
/** * @param ICalendar $calendar */ public function __construct(ICalendar $calendar) { $this->uri = $calendar->getPrivateUri(); $this->userId = $calendar->getUserId(); }