ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
Mock.php
Go to the documentation of this file.
1 <?php
2 
3 namespace Sabre\CalDAV\Backend;
4 
5 use Sabre\CalDAV;
6 use Sabre\DAV;
7 
8 class Mock extends AbstractBackend {
9 
10  protected $calendarData;
11  protected $calendars;
12 
13  function __construct(array $calendars = [], array $calendarData = []) {
14 
15  foreach ($calendars as &$calendar) {
16  if (!isset($calendar['id'])) {
17  $calendar['id'] = DAV\UUIDUtil::getUUID();
18  }
19  }
20 
21  $this->calendars = $calendars;
22  $this->calendarData = $calendarData;
23 
24  }
25 
43  function getCalendarsForUser($principalUri) {
44 
45  $r = [];
46  foreach ($this->calendars as $row) {
47  if ($row['principaluri'] == $principalUri) {
48  $r[] = $row;
49  }
50  }
51 
52  return $r;
53 
54  }
55 
70  function createCalendar($principalUri, $calendarUri, array $properties) {
71 
73  $this->calendars[] = array_merge([
74  'id' => $id,
75  'principaluri' => $principalUri,
76  'uri' => $calendarUri,
77  '{' . CalDAV\Plugin::NS_CALDAV . '}supported-calendar-component-set' => new CalDAV\Xml\Property\SupportedCalendarComponentSet(['VEVENT', 'VTODO']),
78  ], $properties);
79 
80  return $id;
81 
82  }
83 
100  function updateCalendar($calendarId, \Sabre\DAV\PropPatch $propPatch) {
101 
102  $propPatch->handleRemaining(function($props) use ($calendarId) {
103 
104  foreach ($this->calendars as $k => $calendar) {
105 
106  if ($calendar['id'] === $calendarId) {
107  foreach ($props as $propName => $propValue) {
108  if (is_null($propValue)) {
109  unset($this->calendars[$k][$propName]);
110  } else {
111  $this->calendars[$k][$propName] = $propValue;
112  }
113  }
114  return true;
115 
116  }
117 
118  }
119 
120  });
121 
122  }
123 
130  function deleteCalendar($calendarId) {
131 
132  foreach ($this->calendars as $k => $calendar) {
133  if ($calendar['id'] === $calendarId) {
134  unset($this->calendars[$k]);
135  }
136  }
137 
138  }
139 
162  function getCalendarObjects($calendarId) {
163 
164  if (!isset($this->calendarData[$calendarId]))
165  return [];
166 
167  $objects = $this->calendarData[$calendarId];
168 
169  foreach ($objects as $uri => &$object) {
170  $object['calendarid'] = $calendarId;
171  $object['uri'] = $uri;
172  $object['lastmodified'] = null;
173  }
174  return $objects;
175 
176  }
177 
194  function getCalendarObject($calendarId, $objectUri) {
195 
196  if (!isset($this->calendarData[$calendarId][$objectUri])) {
197  return null;
198  }
199  $object = $this->calendarData[$calendarId][$objectUri];
200  $object['calendarid'] = $calendarId;
201  $object['uri'] = $objectUri;
202  $object['lastmodified'] = null;
203  return $object;
204 
205  }
206 
215  function createCalendarObject($calendarId, $objectUri, $calendarData) {
216 
217  $this->calendarData[$calendarId][$objectUri] = [
218  'calendardata' => $calendarData,
219  'calendarid' => $calendarId,
220  'uri' => $objectUri,
221  ];
222  return '"' . md5($calendarData) . '"';
223 
224  }
225 
234  function updateCalendarObject($calendarId, $objectUri, $calendarData) {
235 
236  $this->calendarData[$calendarId][$objectUri] = [
237  'calendardata' => $calendarData,
238  'calendarid' => $calendarId,
239  'uri' => $objectUri,
240  ];
241  return '"' . md5($calendarData) . '"';
242 
243  }
244 
252  function deleteCalendarObject($calendarId, $objectUri) {
253 
254  unset($this->calendarData[$calendarId][$objectUri]);
255 
256  }
257 
258 }
This class represents a set of properties that are going to be updated.
Definition: PropPatch.php:20
getCalendarsForUser($principalUri)
Returns a list of calendars for a principal.
Definition: Mock.php:43
if(!array_key_exists('StateId', $_REQUEST)) $id
__construct(array $calendars=[], array $calendarData=[])
Definition: Mock.php:13
deleteCalendar($calendarId)
Delete a calendar and all it&#39;s objects.
Definition: Mock.php:130
$r
Definition: example_031.php:79
createCalendarObject($calendarId, $objectUri, $calendarData)
Creates a new calendar object.
Definition: Mock.php:215
getCalendarObject($calendarId, $objectUri)
Returns information from a single calendar object, based on it&#39;s object uri.
Definition: Mock.php:194
updateCalendarObject($calendarId, $objectUri, $calendarData)
Updates an existing calendarobject, based on it&#39;s uri.
Definition: Mock.php:234
deleteCalendarObject($calendarId, $objectUri)
Deletes an existing calendar object.
Definition: Mock.php:252
$row
getCalendarObjects($calendarId)
Returns all calendar objects within a calendar object.
Definition: Mock.php:162
static getUUID()
Returns a pseudo-random v4 UUID.
Definition: UUIDUtil.php:26
createCalendar($principalUri, $calendarUri, array $properties)
Creates a new calendar for a principal.
Definition: Mock.php:70
const NS_CALDAV
This is the official CalDAV namespace.
Definition: Plugin.php:33
Abstract Calendaring backend.
updateCalendar($calendarId, \Sabre\DAV\PropPatch $propPatch)
Updates properties for a calendar.
Definition: Mock.php:100