Should fix bug in webservices "character [ not valid" see BT#4158

skala
Julio Montoya 14 years ago
parent dc5d2d067e
commit ed709bd8d0
  1. 32
      main/webservices/client_soap.php
  2. 22
      main/webservices/registration.soap.php

@ -12,7 +12,7 @@
* *
*/ */
exit; //Uncomment this in order to execute the page //exit; //Uncomment this in order to execute the page
require_once '../inc/global.inc.php'; require_once '../inc/global.inc.php';
@ -75,7 +75,6 @@ if (!empty($user_id) && is_numeric($user_id)) {
$result = $client->call('WSGetUser', array('GetUser' => $params)); $result = $client->call('WSGetUser', array('GetUser' => $params));
echo '<h2>User created via webservices</h2>'; echo '<h2>User created via webservices</h2>';
var_dump($result);
//3.Adding user to the course TEST. The course TEST must be created manually in Chamilo //3.Adding user to the course TEST. The course TEST must be created manually in Chamilo
@ -84,6 +83,30 @@ if (!empty($user_id) && is_numeric($user_id)) {
'secret_key' => $secret_key); 'secret_key' => $secret_key);
$result = $client->call('WSSubscribeUserToCourseSimple', array('subscribeUserToCourseSimple' => $params)); $result = $client->call('WSSubscribeUserToCourseSimple', array('subscribeUserToCourseSimple' => $params));
// ------------------------
//Calling the WSSubscribeUserToCourse
/*
$course_array = array( 'original_course_id_name' => 'TEST',
'original_course_id_value' => 'TEST'
);
$user_array = array('original_user_id_value' => $user_id,
'original_user_id_name' => 'name');
$user_courses = array();
$user_courses[] = array ( 'course_id' => $course_array,
'user_id' => $user_array,
'status' => '1'
);
$params = array (
'userscourses' => $user_courses,
'secret_key' => $secret_key);
$result = $client->call('WSSubscribeUserToCourse', array('subscribeUserToCourse' => $params));
var_dump($result);*/
if ($result == 1) { if ($result == 1) {
echo "User $user_id added to course TEST"; echo "User $user_id added to course TEST";
} else { } else {
@ -95,6 +118,7 @@ if (!empty($user_id) && is_numeric($user_id)) {
// Check for an error // Check for an error
$err = $client->getError(); $err = $client->getError();
if ($err) { if ($err) {
// Display the error // Display the error
echo '<h2>Constructor error</h2><pre>' . $err . '</pre>'; echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
@ -111,8 +135,8 @@ if ($client->fault) {
echo '<h2>Error</h2><pre>' . $err . '</pre>'; echo '<h2>Error</h2><pre>' . $err . '</pre>';
} else { } else {
// Display the result // Display the result
//echo '<h2>Web service result</h2><pre/>'; echo '<h2>Web service result</h2><pre/>';
//var_dump($result); var_dump($result);
} }
} }

@ -3545,11 +3545,24 @@ $server->wsdl->addComplexType(
'all', 'all',
'', '',
array ( array (
'userscourses' => array('name' => 'userscourses', 'type' => 'tns:user_course_status[]'), 'userscourses' => array('name' => 'userscourses', 'type' => 'tns:user_course_status_array'), //removed []
'secret_key' => array('name' => 'secret_key', 'type' => 'xsd:string') 'secret_key' => array('name' => 'secret_key', 'type' => 'xsd:string')
) )
); );
$server->wsdl->addComplexType(
'user_course_status_array',
'complexType',
'array',
'',
'SOAP-ENC:Array',
array(),
array(
array('ref' => 'SOAP-ENC:arrayType', 'wsdl:arrayType' => 'tns:user_course_status[]')
),
'tns:user_course_status'
);
// Prepare output params, in this case will return an array // Prepare output params, in this case will return an array
$server->wsdl->addComplexType( $server->wsdl->addComplexType(
'subscribeUserToCourse_return', 'subscribeUserToCourse_return',
@ -3568,7 +3581,7 @@ array(
// Register the method to expose // Register the method to expose
$server->register('WSSubscribeUserToCourse', // method name $server->register('WSSubscribeUserToCourse', // method name
array('subscribeUserToCourse' => 'tns:subscribeUserToCourse_arg'), // input parameters array('subscribeUserToCourse' => 'tns:subscribeUserToCourse_arg'), // input parameters
array('return' => 'tns:subscribeUserToCourse_return[]'), // output parameters array('return' => 'tns:subscribeUserToCourse_return'), // output parameters
'urn:WSRegistration', // namespace 'urn:WSRegistration', // namespace
'urn:WSRegistration#WSSubscribeUserToCourse', // soapaction 'urn:WSRegistration#WSSubscribeUserToCourse', // soapaction
'rpc', // style 'rpc', // style
@ -3578,10 +3591,11 @@ $server->register('WSSubscribeUserToCourse', // method name
// define the method WSSubscribeUserToCourse // define the method WSSubscribeUserToCourse
function WSSubscribeUserToCourse($params) { function WSSubscribeUserToCourse($params) {
global $debug;
if (!WSHelperVerifyKey($params)) { if (!WSHelperVerifyKey($params)) {
return return_error(WS_ERROR_SECRET_KEY); return return_error(WS_ERROR_SECRET_KEY);
} }
if ($debug) error_log('WSSubscribeUserToCourse params: '.print_r($params,1));
$results = array(); $results = array();
$userscourses = $params['userscourses']; $userscourses = $params['userscourses'];
foreach ($userscourses as $usercourse) { foreach ($userscourses as $usercourse) {
@ -3599,6 +3613,8 @@ function WSSubscribeUserToCourse($params) {
// Get user id // Get user id
$user_id = UserManager::get_user_id_from_original_id($original_user_id['original_user_id_value'], $original_user_id['original_user_id_name']); $user_id = UserManager::get_user_id_from_original_id($original_user_id['original_user_id_value'], $original_user_id['original_user_id_name']);
if ($debug) error_log('WSSubscribeUserToCourse user_id: '.$user_id);
if ($user_id == 0) { if ($user_id == 0) {
// If user was not found, there was a problem // If user was not found, there was a problem
$result['result'] = 0; $result['result'] = 0;

Loading…
Cancel
Save