You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by se...@apache.org on 2012/04/21 16:21:58 UTC
svn commit: r1328666 - in
/incubator/openmeetings/trunk/plugins/moodle_plugin: lib.php
lib/openmeetings_rest_service.php mod_form.php openmeetings_gateway.php
Author: sebawagner
Date: Sat Apr 21 14:21:58 2012
New Revision: 1328666
URL: http://svn.apache.org/viewvc?rev=1328666&view=rev
Log:
OPENMEETINGS-3 Fix addRoom and entering of the Room using REST methods
Modified:
incubator/openmeetings/trunk/plugins/moodle_plugin/lib.php
incubator/openmeetings/trunk/plugins/moodle_plugin/lib/openmeetings_rest_service.php
incubator/openmeetings/trunk/plugins/moodle_plugin/mod_form.php
incubator/openmeetings/trunk/plugins/moodle_plugin/openmeetings_gateway.php
Modified: incubator/openmeetings/trunk/plugins/moodle_plugin/lib.php
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/plugins/moodle_plugin/lib.php?rev=1328666&r1=1328665&r2=1328666&view=diff
==============================================================================
--- incubator/openmeetings/trunk/plugins/moodle_plugin/lib.php (original)
+++ incubator/openmeetings/trunk/plugins/moodle_plugin/lib.php Sat Apr 21 14:21:58 2012
@@ -134,7 +134,7 @@ function openmeetings_delete_instance($i
function openmeetings_user_outline($course, $user, $mod, $openmeetings) {
- return $return;
+ return true;
}
Modified: incubator/openmeetings/trunk/plugins/moodle_plugin/lib/openmeetings_rest_service.php
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/plugins/moodle_plugin/lib/openmeetings_rest_service.php?rev=1328666&r1=1328665&r2=1328666&view=diff
==============================================================================
--- incubator/openmeetings/trunk/plugins/moodle_plugin/lib/openmeetings_rest_service.php (original)
+++ incubator/openmeetings/trunk/plugins/moodle_plugin/lib/openmeetings_rest_service.php Sat Apr 21 14:21:58 2012
@@ -25,7 +25,7 @@
class openmeetings_rest_service {
- function call($request){
+ function call($request,$returnAttribute="return"){
// This will allow you to view errors in the browser
// Note: set "display_errors" to 0 in production
//ini_set('display_errors',1);
@@ -86,30 +86,38 @@ class openmeetings_rest_service {
The exact error is returned in the XML response.');
break;
default:
- die('Your call to OpenMeetings Web Services returned an unexpected HTTP status of: ' . $status_code[0]);
- }
-
- // Get the XML from the response, bypassing the header
- if (!($xml = strstr($response, '<ns'))) {
- $xml = null;
- }
-
- // Create a SimpleXML object with XML response
- $simple_xml = simplexml_load_string($xml, "SimpleXMLElement", 0,"http://services.axis.openmeetings.org", true);
-
- return $simple_xml;
+ die('Your call to OpenMeetings Web Services returned an unexpected HTTP status of: ' . $status_code[0]." Request ".$request);
+ }
+
+ // Get the XML from the response, bypassing the header
+ if (!($xml = strstr($response, '<ns'))) {
+ $xml = null;
+ }
+
+ $dom = new DOMDocument();
+ $dom->loadXML($xml);
+
+ if ($returnAttribute == "") {
+ //echo "XML".$xml."<br/>";
+ return $dom;
+ } else {
+ $returnNodeList = $dom->getElementsByTagName($returnAttribute);
+ foreach ($returnNodeList as $returnNode) {
+ return $returnNode->nodeValue;
+ }
+ }
+
}
function getError(){
-
+ return false;
}
function fault(){
-
-
+ return false;
}
}
Modified: incubator/openmeetings/trunk/plugins/moodle_plugin/mod_form.php
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/plugins/moodle_plugin/mod_form.php?rev=1328666&r1=1328665&r2=1328666&view=diff
==============================================================================
--- incubator/openmeetings/trunk/plugins/moodle_plugin/mod_form.php (original)
+++ incubator/openmeetings/trunk/plugins/moodle_plugin/mod_form.php Sat Apr 21 14:21:58 2012
@@ -31,8 +31,8 @@ class mod_openmeetings_mod_form extends
function definition() {
- global $COURSE, $openmeetings_gateway, $om_login;
- $mform =& $this->_form;
+ global $openmeetings_gateway, $om_login;
+ $mform = $this->_form;
//-------------------------------------------------------------------------------
/// Adding the "general" fieldset, where all the common settings are showed
@@ -105,18 +105,26 @@ class mod_openmeetings_mod_form extends
if ($om_login) {
- $recordingsArray = $openmeetings_gateway->openmeetings_getRecordingsByExternalRooms();
+ $resultDom = $openmeetings_gateway->openmeetings_getRecordingsByExternalRooms();
-
- foreach ($recordingsArray as $key => $value) {
- //there is a bug, if a List has the length of 1 the type is wrong
- if (is_array($value)) {
- //echo "Das Element " . $value["flvRecordingId"] . " enthlt den Wert: " . $value["fileName"] . "<br>";
- $recordings[$value["flvRecordingId"]] = $value["fileName"];
- } else {
- //echo "Das Element " . $recordingsArray["flvRecordingId"] . " enthlt den Wert: " . $recordingsArray["fileName"] . "<br>";
- $recordings[$recordingsArray["flvRecordingId"]] = $recordingsArray["fileName"];
- break;
+ $flvrecordings = $resultDom->getElementsByTagName('flvrecording');
+ if ($flvrecordings->length > 0) {
+
+ foreach ($flvrecordings as $flvrecording) {
+
+ $flvRecordingIdNode = $flvrecording->getElementsByTagName('flvRecordingId');
+ $flvRecordingNameNode = $flvrecording->getElementsByTagName('fileName');
+ if ($flvRecordingIdNode->length > 0) {
+ $recordings[$flvRecordingIdNode->item(0)->nodeValue] = $flvRecordingNameNode->item(0)->nodeValue;
+ }
+
+ }
+
+ } else {
+ $flvRecordingIdNode = $resultDom->getElementsByTagName('flvRecordingId');
+ $flvRecordingNameNode = $resultDom->getElementsByTagName('fileName');
+ if ($flvRecordingIdNode->length > 0) {
+ $recordings[$flvRecordingIdNode->item(0)->nodeValue] = $flvRecordingNameNode->item(0)->nodeValue;
}
}
Modified: incubator/openmeetings/trunk/plugins/moodle_plugin/openmeetings_gateway.php
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/plugins/moodle_plugin/openmeetings_gateway.php?rev=1328666&r1=1328665&r2=1328666&view=diff
==============================================================================
--- incubator/openmeetings/trunk/plugins/moodle_plugin/openmeetings_gateway.php (original)
+++ incubator/openmeetings/trunk/plugins/moodle_plugin/openmeetings_gateway.php Sat Apr 21 14:21:58 2012
@@ -54,12 +54,7 @@ class openmeetings_gateway {
$restService = new openmeetings_rest_service();
- $response = $restService->call($this->getUrl()."/services/UserService/getSession");
-
- // Confirm that the request was transmitted to the OpenMeetings!
- if(!$response->asXML()) {
- die("Request to OpenMeetings og! OpenMeetings Service failed and no response was returned.");
- }
+ $response = $restService->call($this->getUrl()."/services/UserService/getSession","session_id");
if ($restService->getError()) {
echo '<h2>Fault (Expect - The request contains an invalid SOAP body)</h2><pre>'; print_r($result); echo '</pre>';
@@ -68,8 +63,8 @@ class openmeetings_gateway {
if ($err) {
echo '<h2>Error</h2><pre>' . $err . '</pre>';
} else {
- //echo '<h2>Result</h2><pre>'; print_r($result); echo '</pre>';
- $this->session_id = $sid = $response->children('ns', true)->return->children('ax23', true)->session_id;
+ //echo '<h2>Result</h2><pre>'; print_r($response); echo '</pre>';
+ $this->session_id = $response;
$result = $restService->call($this->getUrl()."/services/UserService/loginUser?"
. "SID=".$this->session_id
@@ -85,14 +80,15 @@ class openmeetings_gateway {
echo '<h2>Error</h2><pre>' . $err . '</pre>';
} else {
//echo '<h2>Result</h2><pre>'; print_r($result); echo '</pre>';
- $returnValue = $result->children('ns', true)->return[0];
- //print_r($result->children('ns', true)->return[0]);
+ $returnValue = $result;
+ //print_r($result);
//exit;
//echo '<h2>returnValue</h2><pre>'; printf($returnValue); echo '</pre>';
}
}
}
}
+
if ($returnValue>0){
return true;
} else {
@@ -135,7 +131,7 @@ class openmeetings_gateway {
echo '<h2>Error</h2><pre>' . $err . '</pre>';
} else {
//echo '<h2>Result</h2><pre>'; print_r($result["return"]); echo '</pre>';
- return $result->children('ns', true)->return[0]; //$result["return"];
+ return $result;
}
}
return -1;
@@ -195,7 +191,7 @@ class openmeetings_gateway {
echo '<h2>Error</h2><pre>' . $err . '</pre>';
} else {
//echo '<h2>Result</h2><pre>'; print_r($result["return"]); echo '</pre>';
- return $result->children('ns', true)->return[0]; //$result["return"];
+ return $result;
}
}
return -1;
@@ -237,7 +233,7 @@ class openmeetings_gateway {
echo '<h2>Error</h2><pre>' . $err . '</pre>';
} else {
//echo '<h2>Result</h2><pre>'; print_r($result["return"]); echo '</pre>';
- return $result->children('ns', true)->return[0]; //$result["return"];
+ return $result;
}
}
return -1;
@@ -283,7 +279,7 @@ class openmeetings_gateway {
} else {
//echo '<h2>Result</h2><pre>'; print_r($result["return"]); echo '</pre>';
//return $result["return"];
- return $result->children('ns', true)->return[0];
+ return $result;
}
}
return -1;
@@ -326,7 +322,7 @@ class openmeetings_gateway {
} else {
//echo '<h2>Result</h2><pre>'; print_r($result["return"]); echo '</pre>';
//return $result["return"];
- return $result->children('ns', true)->return[0];
+ return $result;
}
}
return -1;
@@ -368,7 +364,7 @@ class openmeetings_gateway {
} else {
//echo '<h2>Result</h2><pre>'; print_r($result["return"]); echo '</pre>';
//return $result["return"];
- return $result->children('ns', true)->return[0];
+ return $result;
}
}
return -1;
@@ -398,7 +394,7 @@ class openmeetings_gateway {
}
$params = array(
'SID' => $this->session_id,
- 'username' => $username,
+ 'username' => urlencode($username),
'firstname' => $firstname,
'lastname' => $lastname,
'profilePictureUrl' => $profilePictureUrl,
@@ -422,15 +418,15 @@ class openmeetings_gateway {
}
function openmeetings_setUserObjectAndGenerateRoomHash($username,
- $firstname,
- $lastname,
- $profilePictureUrl,
- $email,
- $externalUserId,
- $externalUserType,
- $room_id,
- $becomeModeratorAsInt,
- $showAudioVideoTestAsInt) {
+ $firstname,
+ $lastname,
+ $profilePictureUrl,
+ $email,
+ $externalUserId,
+ $externalUserType,
+ $room_id,
+ $becomeModeratorAsInt,
+ $showAudioVideoTestAsInt) {
global $CFG;
@@ -438,13 +434,13 @@ class openmeetings_gateway {
$result = $restService->call($this->getUrl()."/services/UserService/setUserObjectAndGenerateRoomHash?" .
"SID=".$this->session_id.
- "&username=".$username.
- "&firstname=".$firstname.
- "&lastname=".$lastname.
- "&profilePictureUrl=".$profilePictureUrl.
- "&email=".$email.
- "&externalUserId=".$externalUserId.
- "&externalUserType=".$externalUserType.
+ "&username=".urlencode($username).
+ "&firstname=".urlencode($firstname).
+ "&lastname=".urlencode($lastname).
+ "&profilePictureUrl=".urlencode($profilePictureUrl).
+ "&email=".urlencode($email).
+ "&externalUserId=".urlencode($externalUserId).
+ "&externalUserType=".urlencode($externalUserType).
"&room_id=".$room_id.
"&becomeModeratorAsInt=".$becomeModeratorAsInt.
"&showAudioVideoTestAsInt=".$showAudioVideoTestAsInt);
@@ -465,89 +461,40 @@ class openmeetings_gateway {
echo '<h2>Error</h2><pre>' . $err . '</pre>';
} else {
//echo '<h2>Result</h2><pre>'; print_r($result["return"]); echo '</pre>';
- return $result->children('ns', true)->return[0];
+ return $result;
}
}
return -1;
}
-
- function openmeetings_sendInvitationHash($username, $message, $baseurl, $email, $subject, $room_id, $conferencedomain, $isPasswordProtected, $invitationpass, $valid, $validFromDate, $validFromTime, $validToDate, $validToTime, $language_id, $sendMail) {
- global $CFG;
-
- $restService = new nusoap_client($this->getUrl()."/services/RoomService?wsdl", true);
-
- $err = $restService->getError();
-
- if ($err) {
- echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
- echo '<h2>Debug</h2><pre>' . htmlspecialchars($client->getDebug(), ENT_QUOTES) . '</pre>';
- exit();
- }
- $params = array(
- 'SID' => $this->session_id,
- 'username' => $username,
- 'message' => $message,
- 'baseurl' => $baseurl,
- 'email' => $email,
- 'subject' => $subject,
- 'room_id' => $room_id,
- 'conferencedomain' => $conferencedomain,
- 'isPasswordProtected' => $isPasswordProtected,
- 'invitationpass' => $invitationpass,
- 'valid'=> $valid,
- 'validFromDate' => $validFromDate,
- 'validFromTime' => $validFromTime,
- 'validToDate' => $validToDate,
- 'validToTime' => $validToTime,
- 'language_id' => $language_id,
- 'sendMail' => $sendMail
- );
- $result = $restService->call('sendInvitationHash', $params);
- if ($restService->fault) {
- echo '<h2>Fault (Expect - The request contains an invalid SOAP body)</h2><pre>'; print_r($result); echo '</pre>';
- } else {
- $err = $restService->getError();
- if ($err) {
- echo '<h2>Error</h2><pre>' . $err . '</pre>';
- } else {
- //echo '<h2>Result</h2><pre>'; print_r($result["return"]); echo '</pre>';
- return $result["return"];
- }
- }
- return -1;
- }
-
- function sendInvitationHashWithDateObject($username, $message, $baseurl, $email, $subject, $room_id, $conferencedomain, $isPasswordProtected, $invitationpass, $valid, $fromDate, $toDate, $language_id, $sendMail) {
- global $CFG;
-
- $restService = new nusoap_client($this->getUrl()."/services/RoomService?wsdl", true);
-
- $err = $restService->getError();
-
- if ($err) {
- echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
- echo '<h2>Debug</h2><pre>' . htmlspecialchars($client->getDebug(), ENT_QUOTES) . '</pre>';
- exit();
+
+ function openmeetings_createRoomWithModAndType($openmeetings) {
+ global $USER, $CFG;
+
+ $restService = new openmeetings_rest_service();
+ $course_name = 'MOODLE_COURSE_ID_'.$openmeetings->course.'_NAME_'.$openmeetings->name;
+
+ $isModeratedRoom = "false";
+ if ($openmeetings->is_moderated_room == 1) {
+ $isModeratedRoom = "true";
}
- $params = array(
- 'SID' => $this->session_id,
- 'username' => $username,
- 'message' => $message,
- 'baseurl' => $baseurl,
- 'email' => $email,
- 'subject' => $subject,
- 'room_id' => $room_id,
- 'conferencedomain' => $conferencedomain,
- 'isPasswordProtected' => $isPasswordProtected,
- 'invitationpass' => $invitationpass,
- 'valid'=> $valid,
- 'fromDate' => $fromDate,
- 'toDate' => $toDate,
- 'language_id' => $language_id,
- 'sendMail' => $sendMail
- );
- $result = $restService->call('sendInvitationHash', $params);
+
+ $url = $this->getUrl().'/services/RoomService/addRoomWithModerationAndExternalType?' .
+ 'SID='.$this->session_id .
+ '&name='.urlencode($course_name).
+ '&roomtypes_id='.$openmeetings->type .
+ '&comment='.urlencode('Created by SOAP-Gateway for Moodle Platform') .
+ '&numberOfPartizipants='.$openmeetings->max_user .
+ '&ispublic=false'.
+ '&appointment=false'.
+ '&isDemoRoom=false'.
+ '&demoTime=0' .
+ '&isModeratedRoom='.$isModeratedRoom .
+ '&externalRoomType='.urlencode($CFG->openmeetings_openmeetingsModuleKey)
+ ;
+
+ $result = $restService->call($url, "return");
+
if ($restService->fault) {
echo '<h2>Fault (Expect - The request contains an invalid SOAP body)</h2><pre>'; print_r($result); echo '</pre>';
} else {
@@ -555,50 +502,27 @@ class openmeetings_gateway {
if ($err) {
echo '<h2>Error</h2><pre>' . $err . '</pre>';
} else {
- //echo '<h2>Result</h2><pre>'; print_r($result["return"]); echo '</pre>';
- return $result["return"];
+ echo '<h2>Result Create Room </h2><pre>'; print_r($result); echo '</pre>';
+ return $result;
}
- }
+ }
return -1;
}
- function getInvitationHash($username, $room_id, $isPasswordProtected, $invitationpass, $valid, $validFromDate, $validFromTime, $validToDate, $validToTime) {
+ function openmeetings_getRecordingsByExternalRooms() {
+
global $CFG;
$restService = new openmeetings_rest_service();
- $err = $restService->getError();
- if ($err) {
- echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
- echo '<h2>Debug</h2><pre>' . htmlspecialchars($client->getDebug(), ENT_QUOTES) . '</pre>';
- exit();
- }
-
- $result = $restService->call($this->getUrl()."/services/RoomService/getInvitationHash?" .
- "SID=".$this->session_id.
- "&username=".urlencode($username).
- "&room_id=".$room_id.
- "&isPasswordProtected=".$this->var_to_str($isPasswordProtected).
- "&invitationpass=".$invitationpass.
- "&valid=".$valid.
- "&validFromDate=".$validFromDate.
- "&validFromTime=".$validFromTime.
- "&validToDate=".$validToDate.
- "&validToTime=".$validToTime);
-
-
- if ($restService->fault) {
- echo '<h2>Fault (Expect - The request contains an invalid SOAP body)</h2><pre>'; print_r($result); echo '</pre>';
- } else {
- $err = $restService->getError();
- if ($err) {
- echo '<h2>Error</h2><pre>' . $err . '</pre>';
- } else {
- //echo '<h2>Result</h2><pre>'; print_r($result["return"]); echo '</pre>';
- //return $result["return"];
- return $result->children('ns', true)->return[0];
- }
- }
- return -1;
+
+ $url = $this->getUrl()."/services/RoomService/getFlvRecordingByExternalRoomType?" .
+ "SID=".$this->session_id .
+ "&externalRoomType=".urlencode($CFG->openmeetings_openmeetingsModuleKey);
+
+ $result = $restService->call($url,"");
+
+ return $result;
+
}
}