/** * @param ICalendar $calendar * @param \OCA\Calendar\IObject|\OCA\Calendar\IObjectCollection $data * @param TimezoneMapper $timezones */ public function __construct(ICalendar $calendar, $data, TimezoneMapper $timezones) { $vobject = $data->getVObject(); if ($vobject) { if ($timezones) { SabreUtility::addMissingVTimezones($vobject, $timezones); } $serialized = $vobject->serialize(); $contentType = 'application/octet-stream'; $filename = $calendar->getPublicUri(); if ($data instanceof IObject) { $filename .= '-' . $data->getSummary(); } $filename .= '.ics'; parent::__construct($serialized, $filename, $contentType); } }
/** * @param IObject $object * @param integer $calendarId * @return array */ private function getObjectSqlParams(IObject $object, $calendarId) { return [$this->getType($object->getType(), 'string'), $this->getUTCforMDB($object->getStartDate()), $this->getUTCforMDB($object->getEndDate()), $object->getRepeating(), $object->getSummary(), $object->getCalendarData(), $this->getUTCforMDB($object->getLastModified()), $object->getUri(), $calendarId]; }
/** * @param IObject $object * @return IObject */ public function update(IObject $object) { $calendarId = $this->calendar->getId(); //TODO - (maybe) check uri exists already $sql = 'UPDATE `' . $this->getTableName() . '` SET '; $sql .= '`type` = ?, `etag` = ?, `startdate` = ?, `enddate` = ?, '; $sql .= '`repeating` = ?, `summary` = ?, `calendardata` = ?, '; $sql .= '`lastmodified` = ? WHERE `uri` = ? and `calendarid` = ?'; $stmt = $this->execute($sql, [$object->getType(), $object->getEtag(true), $this->getUTC($object->getStartDate()), $this->getUTC($object->getEndDate()), $object->getRepeating(), $object->getSummary(), $object->getCalendarData(), $this->getUTC($object->getLastModified()), $object->getUri(), $calendarId]); $stmt->closeCursor(); return $object; }