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"] . " enthŠlt den Wert: " . $value["fileName"] . "<br>";
-                                       $recordings[$value["flvRecordingId"]] = 
$value["fileName"];
-                               } else {
-                                       //echo "Das Element " . 
$recordingsArray["flvRecordingId"] . " enthŠlt 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;         
+                                       
        }
 
 }


Reply via email to