Skip to content
Snippets Groups Projects

Rewrite (Get|Stat)Message by using faster/simpler HREF search & improve UID search

Merged Vincent Brillault requested to merge GetEntryByHref into cern
2 files
+ 44
27
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -257,13 +257,12 @@ class BackendCalDAV extends BackendDiff {
$path = $this->_caldav_path . substr($folderid, 1) . "/";
$href = $path . $id;
ZLog::Write(LOGLEVEL_DEBUG, sprintf("BackendCalDAV->GetMessage Querying server for message with href '%s' in folder '%s'", $href, $path));
$messages = $this->_caldav->CalendarMultiget( array( $href ), $path );
if (!isset($messages[$href]) || $messages[$href] == '') {
$message = $this->_caldav->GetEntryByHref($href);
if ($message == null || $message['data'] == '') {
//we don't have any ical information, return false so that the diff backend raises an exception
return false;
}
$data = $messages[ $href ];
unset ($messages, $href);
$data = $message['data'];
if ($folderid[0] == "C") {
return $this->_ParseVEventToAS($data, $contentparameters);
}
@@ -279,23 +278,19 @@ class BackendCalDAV extends BackendDiff {
*/
public function StatMessage($folderid, $id) {
ZLog::Write(LOGLEVEL_DEBUG, sprintf("BackendCalDAV->StatMessage('%s','%s')", $folderid, $id));
$type = "VEVENT";
if ($folderid[0] == "T") {
$type = "VTODO";
}
$data = null;
if (array_key_exists($id, $this->_collection)) {
$data = $this->_collection[$id];
}
else {
$path = $this->_caldav_path . substr($folderid, 1) . "/";
$href = $path . $id;
ZLog::Write(LOGLEVEL_DEBUG, sprintf("BackendCalDAV->StatMessage Data doesn't exist for this item, querying caldav server for uid '%s' in folder '%s'", substr($id, 0, strlen($id)-4), $path));
$e = $this->_caldav->GetEntryByUid(substr($id, 0, strlen($id)-4), $path, $type);
if ($e == null && count($e) <= 0) {
$data = $this->_caldav->GetEntryByHref($href);
if ($data== null) {
ZLog::Write(LOGLEVEL_DEBUG, sprintf("BackendCalDAV->StatMessage No item on server with uid '%s' in folder '%s'", substr($id, 0, strlen($id)-4), $path));
return;
}
$data = $e[0];
}
$message = array();
$message['id'] = $data['href'];
Loading