/** * 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); } }