array( * '{DAV:}displayname' => null, * ), * 424 => array( * '{DAV:}owner' => null, * ) * ) * * In this example it was forbidden to update {DAV:}displayname. * (403 Forbidden), which in turn also caused {DAV:}owner to fail * (424 Failed Dependency) because the request needs to be atomic. * * @param string $calendarId * @param array $mutations * @return bool|array */ public function updateCalendar($calendarId, array $mutations) { return false; } /** * Delete a calendar and all it's objects * * @param string $calendarId * @return void */ abstract function deleteCalendar($calendarId); /** * Returns all calendar objects within a calendar. * * Every item contains an array with the following keys: * * id - unique identifier which will be used for subsequent updates * * calendardata - The iCalendar-compatible calnedar data * * uri - a unique key which will be used to construct the uri. This can be any arbitrary string. * * lastmodified - a timestamp of the last modification time * * etag - An arbitrary string, surrounded by double-quotes. (e.g.: * ' "abcdef"') * * calendarid - The calendarid as it was passed to this function. * * Note that the etag is optional, but it's highly encouraged to return for * speed reasons. * * The calendardata is also optional. If it's not returned * 'getCalendarObject' will be called later, which *is* expected to return * calendardata. * * @param string $calendarId * @return array */ abstract function getCalendarObjects($calendarId); /** * 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 */ abstract function getCalendarObject($calendarId,$objectUri); /** * Creates a new calendar object. * * @param string $calendarId * @param string $objectUri * @param string $calendarData * @return void */ abstract function createCalendarObject($calendarId,$objectUri,$calendarData); /** * Updates an existing calendarobject, based on it's uri. * * @param string $calendarId * @param string $objectUri * @param string $calendarData * @return void */ abstract function updateCalendarObject($calendarId,$objectUri,$calendarData); /** * Deletes an existing calendar object. * * @param string $calendarId * @param string $objectUri * @return void */ abstract function deleteCalendarObject($calendarId,$objectUri); }