/** * {@inheritdoc} */ public function updateCalendarObject($calendarId, $objectUri, $calendarData) { $where = Where::create('calendarid = $*', [$calendarId])->andWhere('uri = $*', [$objectUri]); $calendarobjects = $this->manager->findWhere('public', 'calendarobject', $where); if ($calendarobjects->count() == 0) { return; } $object = $calendarobjects->get(0); $vCal = Reader::read($calendarData); $this->extractAppleGeo($vCal); if ($object->extracted_data['name'] != $vCal->VEVENT->SUMMARY) { $object->slug = $this->generateSlug($vCal->VEVENT->SUMMARY, 'calendarobject'); $this->updateURL($vCal, $object->slug); } $calendarData = $vCal->serialize(); $object->lastmodified = time(); $object->calendardata = $calendarData; $object->etag = md5($calendarData); $object->extracted_data = Event::extractData($vCal); $object->size = strlen($calendarData); $this->manager->updateOne('public', 'calendarobject', $object, ['lastmodified', 'etag', 'calendardata', 'extracted_data', 'size', 'slug']); $this->addChange($calendarId, $objectUri, 2); }