/** * Returns information from a single calendar object, based on it's object * uri. * * The returned array must have the same keys as getCalendarObjects. The * 'calendardata' object is required here though, while it's not required * for getCalendarObjects. * * @param string $calendarId * @param string $objectUri * @return array */ public function getCalendarObject($calendarId, $objectUri) { $data = OC_Calendar_Object::findWhereDAVDataIs($calendarId, $objectUri); if (is_array($data)) { $object = OC_VObject::parse($data['calendardata']); $object = OC_Calendar_Object::cleanByAccessClass($data['id'], $object); $data['calendardata'] = $object->serialize(); $data = $this->OCAddETag($data); } return $data; }
/** * Returns information from a single calendar object, based on it's object * uri. * * The returned array must have the same keys as getCalendarObjects. The * 'calendardata' object is required here though, while it's not required * for getCalendarObjects. * * @param string $calendarId * @param string $objectUri * @return array */ public function getCalendarObject($calendarId, $objectUri) { if ($calendarId === 'contact_birthdays') { $objectUri = substr($objectUri, 0, strlen($objectUri) - 4); $objectUriArray = explode('::', $objectUri); if (count($objectUriArray) === 3) { $app = new \OCA\Contacts\App(); list($backend, $addressBookId, $contactId) = $objectUriArray; $contact = $app->getContact($backend, $addressBookId, $contactId); $vevent = $contact->getBirthdayEvent(); if (is_null($vevent)) { return false; } return $this->OCAddETag(array('id' => 0, 'calendarid' => 'contact_birthdays', 'uri' => $contact->getBackend()->name . '::' . $contact->getParent()->getId() . '::' . $contact->getId() . '.ics', 'lastmodified' => $contact->lastModified(), 'calendardata' => $vevent->serialize())); } } $data = OC_Calendar_Object::findWhereDAVDataIs($calendarId, $objectUri); if (is_array($data)) { $data = $this->OCAddETag($data); $object = \Sabre\VObject\Reader::read($data['calendardata']); if (!$object) { return false; } $object = OC_Calendar_Object::cleanByAccessClass($data['id'], $object); $data['calendardata'] = $object->serialize(); } return $data; }
/** * Returns information from a single calendar object, based on it's object * uri. * * The returned array must have the same keys as getCalendarObjects. The * 'calendardata' object is required here though, while it's not required * for getCalendarObjects. * * @param string $calendarId * @param string $objectUri * @return array */ public function getCalendarObject($calendarId, $objectUri) { $data = OC_Calendar_Object::findWhereDAVDataIs($calendarId, $objectUri); if (is_array($data)) { $data = $this->OCAddETag($data); } return $data; }