summaryrefslogtreecommitdiffstats
path: root/modules-available/locationinfo/inc/coursebackend/coursebackend_davinci.inc.php
diff options
context:
space:
mode:
Diffstat (limited to 'modules-available/locationinfo/inc/coursebackend/coursebackend_davinci.inc.php')
-rw-r--r--modules-available/locationinfo/inc/coursebackend/coursebackend_davinci.inc.php36
1 files changed, 16 insertions, 20 deletions
diff --git a/modules-available/locationinfo/inc/coursebackend/coursebackend_davinci.inc.php b/modules-available/locationinfo/inc/coursebackend/coursebackend_davinci.inc.php
index ed3d7ec2..2b2b9d00 100644
--- a/modules-available/locationinfo/inc/coursebackend/coursebackend_davinci.inc.php
+++ b/modules-available/locationinfo/inc/coursebackend/coursebackend_davinci.inc.php
@@ -14,7 +14,7 @@ class CourseBackend_Davinci extends CourseBackend
public function setCredentialsInternal($data)
{
if (empty($data['baseUrl'])) {
- $this->error = "No url is given";
+ $this->addError("No url is given", true);
return false;
}
$location = preg_replace('#/+(davinciis\.dll)?\W*$#i', '', $data['baseUrl']);
@@ -27,16 +27,17 @@ class CourseBackend_Davinci extends CourseBackend
public function checkConnection()
{
if (empty($this->location)) {
- $this->error = "Credentials are not set";
- } else {
- $startDate = new DateTime('today 0:00');
- $endDate = new DateTime('+7 days 0:00');
- $data = $this->fetchRoomRaw('someroomid123', $startDate, $endDate);
- if ($data !== false && strpos($data, 'DAVINCI SERVER') === false) {
- $this->error = "Unknown reply; this doesn't seem to be a DAVINCI server.";
- }
+ $this->addError("Credentials are not set", true);
+ return false;
+ }
+ $startDate = new DateTime('today 0:00');
+ $endDate = new DateTime('+7 days 0:00');
+ $data = $this->fetchRoomRaw('someroomid123', $startDate, $endDate);
+ if ($data !== false && strpos($data, 'DAVINCI SERVER') === false) {
+ $this->addError("Unknown reply; this doesn't seem to be a DAVINCI server.", true);
+ return false;
}
- return $this->error === false;
+ return true;
}
public function getCredentialDefinitions()
@@ -87,11 +88,8 @@ class CourseBackend_Davinci extends CourseBackend
curl_setopt_array($this->curlHandle, $options);
$output = curl_exec($this->curlHandle);
if ($output === false) {
- $this->error = 'Curl error: ' . curl_error($this->curlHandle);
+ $this->addError('Curl error: ' . curl_error($this->curlHandle), true);
return false;
- } else {
- $this->error = false;
- ///Operation completed successfully
}
return $output;
@@ -109,22 +107,20 @@ class CourseBackend_Davinci extends CourseBackend
if ($return === false) {
continue;
}
- $return = $this->xmlStringToArray($return);
+ $return = $this->xmlStringToArray($return, $err);
if ($return === false) {
- if (CONFIG_DEBUG) {
- error_log('Room was ' . $roomId);
- }
+ $this->addError("Parsing room $roomId XML: $err", false);
continue;
}
$lessons = $this->getArrayPath($return, '/Lessons/Lesson');
if ($lessons === false) {
- $this->error = "Cannot find /Lessons/Lesson in XML";
+ $this->addError("Cannot find /Lessons/Lesson in XML", false);
continue;
}
$timetable = [];
foreach ($lessons as $lesson) {
if (!isset($lesson['Date']) || !isset($lesson['Start']) || !isset($lesson['Finish'])) {
- $this->error = 'Lesson is missing Date, Start or Finish';
+ $this->addError('Lesson is missing Date, Start or Finish', false);
continue;
}
$c = (int)$lesson['Date'];