parent
							
								
									200ce2e33b
								
							
						
					
					
						commit
						4715f3b1de
					
				@ -0,0 +1,109 @@ | 
				
			||||
<?php | 
				
			||||
 | 
				
			||||
/* For licensing terms, see /license.txt */ | 
				
			||||
 | 
				
			||||
require_once __DIR__.'/../../../../vendor/autoload.php'; | 
				
			||||
/** | 
				
			||||
 * Test example to user API v2.php. | 
				
			||||
 * | 
				
			||||
 * Using Guzzle' HTTP client to call the API endpoint and make requests. | 
				
			||||
 * Change URL on the first lines of createUser() below to suit your needs. | 
				
			||||
 */ | 
				
			||||
 | 
				
			||||
use GuzzleHttp\Client as Client; | 
				
			||||
 | 
				
			||||
// set your URL, username and password here to use it for all webservices in this test file. | 
				
			||||
$webserviceURL = 'https://YOURCHAMILO/main/webservices/api/'; | 
				
			||||
$webserviceUsername = 'USERNAME'; | 
				
			||||
$webservicePassword = 'PASSWORD'; | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * Make a request to get the API key for admin user. | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return string | 
				
			||||
 */ | 
				
			||||
function authenticate() | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    global $webservicePassword; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post('v2.php', [ | 
				
			||||
        'form_params' => [ | 
				
			||||
            'action' => 'authenticate', | 
				
			||||
            'username' => $webserviceUsername, | 
				
			||||
            'password' => $webservicePassword, | 
				
			||||
        ], | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $jsonResponse = json_decode($response->getBody()->getContents()); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse->error) { | 
				
			||||
        throw new Exception('Authentication failed because : '.$jsonResponse->message); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse->data->apiKey; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * @param $apiKey | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return int | 
				
			||||
 */ | 
				
			||||
function addUsersToSession($apiKey) | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post( | 
				
			||||
        'v2.php', | 
				
			||||
        [ | 
				
			||||
            'form_params' => [ | 
				
			||||
                // data for the user who makes the request | 
				
			||||
                'action' => 'add_users_session', | 
				
			||||
                'username' => $webserviceUsername, | 
				
			||||
                'api_key' => $apiKey, | 
				
			||||
                // data for users and session | 
				
			||||
                'id_session' => 1, | 
				
			||||
                'list_users' => [ | 
				
			||||
                    '5', | 
				
			||||
                    '6', | 
				
			||||
                    '7', | 
				
			||||
                ], | 
				
			||||
            ], | 
				
			||||
        ] | 
				
			||||
    ); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $jsonResponse = json_decode($response->getBody()->getContents()); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse->error) { | 
				
			||||
        throw new Exception('Users not assigned to session because : '.$jsonResponse->message); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse->data[0]; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
$apiKey = authenticate(); | 
				
			||||
 | 
				
			||||
//adding users with id 5, 6, 7 to session with id 1 | 
				
			||||
if (addUsersToSession($apiKey)) { | 
				
			||||
    echo 'Users successfully added'; | 
				
			||||
} | 
				
			||||
@ -0,0 +1,110 @@ | 
				
			||||
<?php | 
				
			||||
 | 
				
			||||
/* For licensing terms, see /license.txt */ | 
				
			||||
 | 
				
			||||
require_once __DIR__.'/../../../../vendor/autoload.php'; | 
				
			||||
/** | 
				
			||||
 * Test example to user API v2.php. | 
				
			||||
 * | 
				
			||||
 * Using Guzzle' HTTP client to call the API endpoint and make requests. | 
				
			||||
 * Change URL on the first lines of createUser() below to suit your needs. | 
				
			||||
 */ | 
				
			||||
 | 
				
			||||
use GuzzleHttp\Client as Client; | 
				
			||||
 | 
				
			||||
// set your URL, username and password here to use it for all webservices in this test file. | 
				
			||||
$webserviceURL = 'https://YOURCHAMILO/main/webservices/api/'; | 
				
			||||
$webserviceUsername = 'USERNAME'; | 
				
			||||
$webservicePassword = 'PASSWORD'; | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * Make a request to get the API key for admin user. | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return string | 
				
			||||
 */ | 
				
			||||
function authenticate() | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    global $webservicePassword; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post('v2.php', [ | 
				
			||||
        'form_params' => [ | 
				
			||||
            'action' => 'authenticate', | 
				
			||||
            'username' => $webserviceUsername, | 
				
			||||
            'password' => $webservicePassword, | 
				
			||||
        ], | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $jsonResponse = json_decode($response->getBody()->getContents()); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse->error) { | 
				
			||||
        throw new Exception('Authentication failed because : '.$jsonResponse->message); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse->data->apiKey; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * @param $apiKey | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return int | 
				
			||||
 */ | 
				
			||||
function addUsersToSession($apiKey) | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post( | 
				
			||||
        'v2.php', | 
				
			||||
        [ | 
				
			||||
            'form_params' => [ | 
				
			||||
                // data for the user who makes the request | 
				
			||||
                'action' => 'add_users_session', | 
				
			||||
                'username' => $webserviceUsername, | 
				
			||||
                'api_key' => $apiKey, | 
				
			||||
                // data for users and session | 
				
			||||
                'id_session' => 1, | 
				
			||||
                'list_users' => [ | 
				
			||||
                    '5', | 
				
			||||
                    '6', | 
				
			||||
                    '7', | 
				
			||||
                ], | 
				
			||||
            ], | 
				
			||||
        ] | 
				
			||||
    ); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $content = $response->getBody()->getContents(); | 
				
			||||
    $jsonResponse = json_decode($content, true); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse['error']) { | 
				
			||||
        throw new Exception('Users not assigned to session because : '.$jsonResponse['message']); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse['data']['status']; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
$apiKey = authenticate(); | 
				
			||||
 | 
				
			||||
//adding users with id 5, 6, 7 to session with id 1 | 
				
			||||
if (addUsersToSession($apiKey)) { | 
				
			||||
    echo 'Users successfully added'; | 
				
			||||
} | 
				
			||||
@ -0,0 +1,58 @@ | 
				
			||||
<?php | 
				
			||||
 | 
				
			||||
/* For licensing terms, see /license.txt */ | 
				
			||||
 | 
				
			||||
require_once __DIR__.'/../../../../vendor/autoload.php'; | 
				
			||||
/** | 
				
			||||
 * Test example to user API v2.php. | 
				
			||||
 * | 
				
			||||
 * Using Guzzle' HTTP client to call the API endpoint and make requests. | 
				
			||||
 * Change URL on the first lines of createUser() below to suit your needs. | 
				
			||||
 */ | 
				
			||||
 | 
				
			||||
use GuzzleHttp\Client as Client; | 
				
			||||
 | 
				
			||||
// set your URL, username and password here to use it for all webservices in this test file. | 
				
			||||
$webserviceURL = 'https://YOURCHAMILO/main/webservices/api/'; | 
				
			||||
$webserviceUsername = 'USERNAME'; | 
				
			||||
$webservicePassword = 'PASSWORD'; | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * Make a request to get the API key for admin user. | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return string | 
				
			||||
 */ | 
				
			||||
function authenticate() | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    global $webservicePassword; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post('v2.php', [ | 
				
			||||
        'form_params' => [ | 
				
			||||
            'action' => 'authenticate', | 
				
			||||
            'username' => $webserviceUsername, | 
				
			||||
            'password' => $webservicePassword, | 
				
			||||
        ], | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $jsonResponse = json_decode($response->getBody()->getContents()); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse->error) { | 
				
			||||
        throw new Exception('Authentication failed because : '.$jsonResponse->message); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse->data->apiKey; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
$apiKey = authenticate(); | 
				
			||||
echo 'user API Key: '.$apiKey; | 
				
			||||
@ -0,0 +1,103 @@ | 
				
			||||
<?php | 
				
			||||
 | 
				
			||||
/* For licensing terms, see /license.txt */ | 
				
			||||
 | 
				
			||||
require_once __DIR__.'/../../../../vendor/autoload.php'; | 
				
			||||
/** | 
				
			||||
 * Test example to user API v2.php. | 
				
			||||
 * | 
				
			||||
 * Using Guzzle' HTTP client to call the API endpoint and make requests. | 
				
			||||
 * Change URL on the first lines of createUser() below to suit your needs. | 
				
			||||
 */ | 
				
			||||
 | 
				
			||||
use GuzzleHttp\Client as Client; | 
				
			||||
 | 
				
			||||
// set your URL, username and password here to use it for all webservices in this test file. | 
				
			||||
$webserviceURL = 'https://YOURCHAMILO/main/webservices/api/'; | 
				
			||||
$webserviceUsername = 'USERNAME'; | 
				
			||||
$webservicePassword = 'PASSWORD'; | 
				
			||||
/** | 
				
			||||
 * Make a request to get the API key for admin user. | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return string | 
				
			||||
 */ | 
				
			||||
function authenticate() | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    global $webservicePassword; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post('v2.php', [ | 
				
			||||
        'form_params' => [ | 
				
			||||
            'action' => 'authenticate', | 
				
			||||
            'username' => $webserviceUsername, | 
				
			||||
            'password' => $webservicePassword, | 
				
			||||
        ], | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $jsonResponse = json_decode($response->getBody()->getContents()); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse->error) { | 
				
			||||
        throw new Exception('Authentication failed because : '.$jsonResponse->message); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse->data->apiKey; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * @param $apiKey | 
				
			||||
 * @param $courseId | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return array | 
				
			||||
 */ | 
				
			||||
function getCourseAgenda($apiKey, $courseId) | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post( | 
				
			||||
        'v2.php', | 
				
			||||
        [ | 
				
			||||
            'form_params' => [ | 
				
			||||
                // data for the user who makes the request | 
				
			||||
                'action' => 'course_agenda', | 
				
			||||
                'username' => $webserviceUsername, | 
				
			||||
                'api_key' => $apiKey, | 
				
			||||
                'course' => $courseId, | 
				
			||||
            ], | 
				
			||||
        ] | 
				
			||||
    ); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $content = $response->getBody()->getContents(); | 
				
			||||
    $jsonResponse = json_decode($content, true); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse['error']) { | 
				
			||||
        throw new Exception('cant get course agenda because : '.$jsonResponse['message']); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse['data']; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
$apiKey = authenticate(); | 
				
			||||
 | 
				
			||||
//Get the list of calendar events from inside the given course. | 
				
			||||
$courseAgenda = getCourseAgenda($apiKey, 1); | 
				
			||||
echo json_encode($courseAgenda); | 
				
			||||
@ -0,0 +1,105 @@ | 
				
			||||
<?php | 
				
			||||
 | 
				
			||||
/* For licensing terms, see /license.txt */ | 
				
			||||
 | 
				
			||||
require_once __DIR__.'/../../../../vendor/autoload.php'; | 
				
			||||
/** | 
				
			||||
 * Test example to user API v2.php. | 
				
			||||
 * | 
				
			||||
 * Using Guzzle' HTTP client to call the API endpoint and make requests. | 
				
			||||
 * Change URL on the first lines of createUser() below to suit your needs. | 
				
			||||
 */ | 
				
			||||
 | 
				
			||||
use GuzzleHttp\Client as Client; | 
				
			||||
 | 
				
			||||
// set your URL, username and password here to use it for all webservices in this test file. | 
				
			||||
$webserviceURL = 'https://YOURCHAMILO/main/webservices/api/'; | 
				
			||||
$webserviceUsername = 'USERNAME'; | 
				
			||||
$webservicePassword = 'PASSWORD'; | 
				
			||||
/** | 
				
			||||
 * Make a request to get the API key for admin user. | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return string | 
				
			||||
 */ | 
				
			||||
function authenticate() | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    global $webservicePassword; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post('v2.php', [ | 
				
			||||
        'form_params' => [ | 
				
			||||
            'action' => 'authenticate', | 
				
			||||
            'username' => $webserviceUsername, | 
				
			||||
            'password' => $webservicePassword, | 
				
			||||
        ], | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $jsonResponse = json_decode($response->getBody()->getContents()); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse->error) { | 
				
			||||
        throw new Exception('Authentication failed because : '.$jsonResponse->message); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse->data->apiKey; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * @param $apiKey | 
				
			||||
 * @param $courseId | 
				
			||||
 * @param $announcementId | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return int | 
				
			||||
 */ | 
				
			||||
function getCourseAnnouncement($apiKey, $courseId, $announcementId) | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post( | 
				
			||||
        'v2.php', | 
				
			||||
        [ | 
				
			||||
            'form_params' => [ | 
				
			||||
                // data for the user who makes the request | 
				
			||||
                'action' => 'course_announcement', | 
				
			||||
                'username' => $webserviceUsername, | 
				
			||||
                'api_key' => $apiKey, | 
				
			||||
                'course' => $courseId, | 
				
			||||
                'announcement ' => $announcementId, | 
				
			||||
            ], | 
				
			||||
        ] | 
				
			||||
    ); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $content = $response->getBody()->getContents(); | 
				
			||||
    $jsonResponse = json_decode($content, true); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse['error']) { | 
				
			||||
        throw new Exception('cant get announcement because : '.$jsonResponse['message']); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse['data']; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
$apiKey = authenticate(); | 
				
			||||
 | 
				
			||||
//Get the announcement published in the given course. | 
				
			||||
$courseAnnouncement = getCourseAnnouncement($apiKey, 1, 1); | 
				
			||||
echo json_encode($courseAnnouncement); | 
				
			||||
@ -0,0 +1,103 @@ | 
				
			||||
<?php | 
				
			||||
 | 
				
			||||
/* For licensing terms, see /license.txt */ | 
				
			||||
 | 
				
			||||
require_once __DIR__.'/../../../../vendor/autoload.php'; | 
				
			||||
/** | 
				
			||||
 * Test example to user API v2.php. | 
				
			||||
 * | 
				
			||||
 * Using Guzzle' HTTP client to call the API endpoint and make requests. | 
				
			||||
 * Change URL on the first lines of createUser() below to suit your needs. | 
				
			||||
 */ | 
				
			||||
 | 
				
			||||
use GuzzleHttp\Client as Client; | 
				
			||||
 | 
				
			||||
// set your URL, username and password here to use it for all webservices in this test file. | 
				
			||||
$webserviceURL = 'https://YOURCHAMILO/main/webservices/api/'; | 
				
			||||
$webserviceUsername = 'USERNAME'; | 
				
			||||
$webservicePassword = 'PASSWORD'; | 
				
			||||
/** | 
				
			||||
 * Make a request to get the API key for admin user. | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return string | 
				
			||||
 */ | 
				
			||||
function authenticate() | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    global $webservicePassword; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post('v2.php', [ | 
				
			||||
        'form_params' => [ | 
				
			||||
            'action' => 'authenticate', | 
				
			||||
            'username' => $webserviceUsername, | 
				
			||||
            'password' => $webservicePassword, | 
				
			||||
        ], | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $jsonResponse = json_decode($response->getBody()->getContents()); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse->error) { | 
				
			||||
        throw new Exception('Authentication failed because : '.$jsonResponse->message); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse->data->apiKey; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * @param $apiKey | 
				
			||||
 * @param $courseId | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return array | 
				
			||||
 */ | 
				
			||||
function getCourseAnnouncements($apiKey, $courseId) | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post( | 
				
			||||
        'v2.php', | 
				
			||||
        [ | 
				
			||||
            'form_params' => [ | 
				
			||||
                // data for the user who makes the request | 
				
			||||
                'action' => 'course_announcements', | 
				
			||||
                'username' => $webserviceUsername, | 
				
			||||
                'api_key' => $apiKey, | 
				
			||||
                'course' => $courseId, | 
				
			||||
            ], | 
				
			||||
        ] | 
				
			||||
    ); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $content = $response->getBody()->getContents(); | 
				
			||||
    $jsonResponse = json_decode($content, true); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse['error']) { | 
				
			||||
        throw new Exception('cant get announcements because : '.$jsonResponse['message']); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse['data']; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
$apiKey = authenticate(); | 
				
			||||
 | 
				
			||||
//Get the announcements published in the given course. | 
				
			||||
$courseAnnouncements = getCourseAnnouncements($apiKey, 1); | 
				
			||||
echo json_encode($courseAnnouncements); | 
				
			||||
@ -0,0 +1,103 @@ | 
				
			||||
<?php | 
				
			||||
 | 
				
			||||
/* For licensing terms, see /license.txt */ | 
				
			||||
 | 
				
			||||
require_once __DIR__.'/../../../../vendor/autoload.php'; | 
				
			||||
/** | 
				
			||||
 * Test example to user API v2.php. | 
				
			||||
 * | 
				
			||||
 * Using Guzzle' HTTP client to call the API endpoint and make requests. | 
				
			||||
 * Change URL on the first lines of createUser() below to suit your needs. | 
				
			||||
 */ | 
				
			||||
 | 
				
			||||
use GuzzleHttp\Client as Client; | 
				
			||||
 | 
				
			||||
// set your URL, username and password here to use it for all webservices in this test file. | 
				
			||||
$webserviceURL = 'https://YOURCHAMILO/main/webservices/api/'; | 
				
			||||
$webserviceUsername = 'USERNAME'; | 
				
			||||
$webservicePassword = 'PASSWORD'; | 
				
			||||
/** | 
				
			||||
 * Make a request to get the API key for admin user. | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return string | 
				
			||||
 */ | 
				
			||||
function authenticate() | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    global $webservicePassword; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post('v2.php', [ | 
				
			||||
        'form_params' => [ | 
				
			||||
            'action' => 'authenticate', | 
				
			||||
            'username' => $webserviceUsername, | 
				
			||||
            'password' => $webservicePassword, | 
				
			||||
        ], | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $jsonResponse = json_decode($response->getBody()->getContents()); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse->error) { | 
				
			||||
        throw new Exception('Authentication failed because : '.$jsonResponse->message); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse->data->apiKey; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * @param $apiKey | 
				
			||||
 * @param $courseId | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return array | 
				
			||||
 */ | 
				
			||||
function getCourseDescription($apiKey, $courseId) | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post( | 
				
			||||
        'v2.php', | 
				
			||||
        [ | 
				
			||||
            'form_params' => [ | 
				
			||||
                // data for the user who makes the request | 
				
			||||
                'action' => 'course_descriptions', | 
				
			||||
                'username' => $webserviceUsername, | 
				
			||||
                'api_key' => $apiKey, | 
				
			||||
                'course' => $courseId, | 
				
			||||
            ], | 
				
			||||
        ] | 
				
			||||
    ); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $content = $response->getBody()->getContents(); | 
				
			||||
    $jsonResponse = json_decode($content, true); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse['error']) { | 
				
			||||
        throw new Exception('cant get course description because : '.$jsonResponse['message']); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse['data']; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
$apiKey = authenticate(); | 
				
			||||
 | 
				
			||||
//Get the list of documents in the given course. | 
				
			||||
$courseDescription = getCourseDocuments($apiKey, 1); | 
				
			||||
echo json_encode($courseDescription); | 
				
			||||
@ -0,0 +1,104 @@ | 
				
			||||
<?php | 
				
			||||
 | 
				
			||||
/* For licensing terms, see /license.txt */ | 
				
			||||
 | 
				
			||||
require_once __DIR__.'/../../../../vendor/autoload.php'; | 
				
			||||
/** | 
				
			||||
 * Test example to user API v2.php. | 
				
			||||
 * | 
				
			||||
 * Using Guzzle' HTTP client to call the API endpoint and make requests. | 
				
			||||
 * Change URL on the first lines of createUser() below to suit your needs. | 
				
			||||
 */ | 
				
			||||
 | 
				
			||||
use GuzzleHttp\Client as Client; | 
				
			||||
 | 
				
			||||
// set your URL, username and password here to use it for all webservices in this test file. | 
				
			||||
$webserviceURL = 'https://YOURCHAMILO/main/webservices/api/'; | 
				
			||||
$webserviceUsername = 'USERNAME'; | 
				
			||||
$webservicePassword = 'PASSWORD'; | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * Make a request to get the API key for admin user. | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return string | 
				
			||||
 */ | 
				
			||||
function authenticate() | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    global $webservicePassword; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post('v2.php', [ | 
				
			||||
        'form_params' => [ | 
				
			||||
            'action' => 'authenticate', | 
				
			||||
            'username' => $webserviceUsername, | 
				
			||||
            'password' => $webservicePassword, | 
				
			||||
        ], | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $jsonResponse = json_decode($response->getBody()->getContents()); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse->error) { | 
				
			||||
        throw new Exception('Authentication failed because : '.$jsonResponse->message); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse->data->apiKey; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * @param $apiKey | 
				
			||||
 * @param $courseId | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return array | 
				
			||||
 */ | 
				
			||||
function getCourseDocuments($apiKey, $courseId) | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post( | 
				
			||||
        'v2.php', | 
				
			||||
        [ | 
				
			||||
            'form_params' => [ | 
				
			||||
                // data for the user who makes the request | 
				
			||||
                'action' => 'course_documents', | 
				
			||||
                'username' => $webserviceUsername, | 
				
			||||
                'api_key' => $apiKey, | 
				
			||||
                'course' => $courseId, | 
				
			||||
            ], | 
				
			||||
        ] | 
				
			||||
    ); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $content = $response->getBody()->getContents(); | 
				
			||||
    $jsonResponse = json_decode($content, true); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse['error']) { | 
				
			||||
        throw new Exception('cant get course documents because : '.$jsonResponse['message']); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse['data']; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
$apiKey = authenticate(); | 
				
			||||
 | 
				
			||||
//Get the list of documents in the given course. | 
				
			||||
$courseDescription = getCourseDocuments($apiKey, 1); | 
				
			||||
echo json_encode($courseDescription); | 
				
			||||
@ -0,0 +1,106 @@ | 
				
			||||
<?php | 
				
			||||
 | 
				
			||||
/* For licensing terms, see /license.txt */ | 
				
			||||
 | 
				
			||||
require_once __DIR__.'/../../../../vendor/autoload.php'; | 
				
			||||
/** | 
				
			||||
 * Test example to user API v2.php. | 
				
			||||
 * | 
				
			||||
 * Using Guzzle' HTTP client to call the API endpoint and make requests. | 
				
			||||
 * Change URL on the first lines of createUser() below to suit your needs. | 
				
			||||
 */ | 
				
			||||
 | 
				
			||||
use GuzzleHttp\Client as Client; | 
				
			||||
 | 
				
			||||
// set your URL, username and password here to use it for all webservices in this test file. | 
				
			||||
$webserviceURL = 'https://YOURCHAMILO/main/webservices/api/'; | 
				
			||||
$webserviceUsername = 'USERNAME'; | 
				
			||||
$webservicePassword = 'PASSWORD'; | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * Make a request to get the API key for admin user. | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return string | 
				
			||||
 */ | 
				
			||||
function authenticate() | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    global $webservicePassword; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post('v2.php', [ | 
				
			||||
        'form_params' => [ | 
				
			||||
            'action' => 'authenticate', | 
				
			||||
            'username' => $webserviceUsername, | 
				
			||||
            'password' => $webservicePassword, | 
				
			||||
        ], | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $jsonResponse = json_decode($response->getBody()->getContents()); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse->error) { | 
				
			||||
        throw new Exception('Authentication failed because : '.$jsonResponse->message); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse->data->apiKey; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * @param $apiKey | 
				
			||||
 * @param $courseId | 
				
			||||
 * @param $forumId | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return array | 
				
			||||
 */ | 
				
			||||
function getCourseForum($apiKey, $courseId, $forumId) | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post( | 
				
			||||
        'v2.php', | 
				
			||||
        [ | 
				
			||||
            'form_params' => [ | 
				
			||||
                // data for the user who makes the request | 
				
			||||
                'action' => 'course_forum', | 
				
			||||
                'username' => $webserviceUsername, | 
				
			||||
                'api_key' => $apiKey, | 
				
			||||
                'course' => $courseId, | 
				
			||||
                'forum' => $forumId, | 
				
			||||
            ], | 
				
			||||
        ] | 
				
			||||
    ); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $content = $response->getBody()->getContents(); | 
				
			||||
    $jsonResponse = json_decode($content, true); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse['error']) { | 
				
			||||
        throw new Exception('cant get course documents because : '.$jsonResponse['message']); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse['data']; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
$apiKey = authenticate(); | 
				
			||||
 | 
				
			||||
//Get details about a specific forum. | 
				
			||||
$courseForum = getCourseForum($apiKey, 1, 1); | 
				
			||||
echo json_encode($courseForum); | 
				
			||||
@ -0,0 +1,104 @@ | 
				
			||||
<?php | 
				
			||||
 | 
				
			||||
/* For licensing terms, see /license.txt */ | 
				
			||||
 | 
				
			||||
require_once __DIR__.'/../../../../vendor/autoload.php'; | 
				
			||||
/** | 
				
			||||
 * Test example to user API v2.php. | 
				
			||||
 * | 
				
			||||
 * Using Guzzle' HTTP client to call the API endpoint and make requests. | 
				
			||||
 * Change URL on the first lines of createUser() below to suit your needs. | 
				
			||||
 */ | 
				
			||||
 | 
				
			||||
use GuzzleHttp\Client as Client; | 
				
			||||
 | 
				
			||||
// set your URL, username and password here to use it for all webservices in this test file. | 
				
			||||
$webserviceURL = 'https://YOURCHAMILO/main/webservices/api/'; | 
				
			||||
$webserviceUsername = 'USERNAME'; | 
				
			||||
$webservicePassword = 'PASSWORD'; | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * Make a request to get the API key for admin user. | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return string | 
				
			||||
 */ | 
				
			||||
function authenticate() | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    global $webservicePassword; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post('v2.php', [ | 
				
			||||
        'form_params' => [ | 
				
			||||
            'action' => 'authenticate', | 
				
			||||
            'username' => $webserviceUsername, | 
				
			||||
            'password' => $webservicePassword, | 
				
			||||
        ], | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $jsonResponse = json_decode($response->getBody()->getContents()); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse->error) { | 
				
			||||
        throw new Exception('Authentication failed because : '.$jsonResponse->message); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse->data->apiKey; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * @param $apiKey | 
				
			||||
 * @param $courseId | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return array | 
				
			||||
 */ | 
				
			||||
function getCourseForumCategories($apiKey, $courseId) | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post( | 
				
			||||
        'v2.php', | 
				
			||||
        [ | 
				
			||||
            'form_params' => [ | 
				
			||||
                // data for the user who makes the request | 
				
			||||
                'action' => 'course_forumcategories', | 
				
			||||
                'username' => $webserviceUsername, | 
				
			||||
                'api_key' => $apiKey, | 
				
			||||
                'course' => $courseId, | 
				
			||||
            ], | 
				
			||||
        ] | 
				
			||||
    ); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $content = $response->getBody()->getContents(); | 
				
			||||
    $jsonResponse = json_decode($content, true); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse['error']) { | 
				
			||||
        throw new Exception('cant get course documents because : '.$jsonResponse['message']); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse['data']; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
$apiKey = authenticate(); | 
				
			||||
 | 
				
			||||
//A list of forum categories | 
				
			||||
$courseForumCategories = getCourseForumCategories($apiKey, 1); | 
				
			||||
echo json_encode($courseForumCategories); | 
				
			||||
@ -0,0 +1,107 @@ | 
				
			||||
<?php | 
				
			||||
 | 
				
			||||
/* For licensing terms, see /license.txt */ | 
				
			||||
 | 
				
			||||
require_once __DIR__.'/../../../../vendor/autoload.php'; | 
				
			||||
/** | 
				
			||||
 * Test example to user API v2.php. | 
				
			||||
 * | 
				
			||||
 * Using Guzzle' HTTP client to call the API endpoint and make requests. | 
				
			||||
 * Change URL on the first lines of createUser() below to suit your needs. | 
				
			||||
 */ | 
				
			||||
 | 
				
			||||
use GuzzleHttp\Client as Client; | 
				
			||||
 | 
				
			||||
// set your URL, username and password here to use it for all webservices in this test file. | 
				
			||||
$webserviceURL = 'https://YOURCHAMILO/main/webservices/api/'; | 
				
			||||
$webserviceUsername = 'USERNAME'; | 
				
			||||
$webservicePassword = 'PASSWORD'; | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * Make a request to get the API key for admin user. | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return string | 
				
			||||
 */ | 
				
			||||
function authenticate() | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    global $webservicePassword; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post('v2.php', [ | 
				
			||||
        'form_params' => [ | 
				
			||||
            'action' => 'authenticate', | 
				
			||||
            'username' => $webserviceUsername, | 
				
			||||
            'password' => $webservicePassword, | 
				
			||||
        ], | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $jsonResponse = json_decode($response->getBody()->getContents()); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse->error) { | 
				
			||||
        throw new Exception('Authentication failed because : '.$jsonResponse->message); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse->data->apiKey; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * @param $apiKey | 
				
			||||
 * @param $courseId | 
				
			||||
 * @param $threadId | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return array | 
				
			||||
 */ | 
				
			||||
function getCourseForumThread($apiKey, $courseId, $forumId, $threadId) | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post( | 
				
			||||
        'v2.php', | 
				
			||||
        [ | 
				
			||||
            'form_params' => [ | 
				
			||||
                // data for the user who makes the request | 
				
			||||
                'action' => 'course_forumthread', | 
				
			||||
                'username' => $webserviceUsername, | 
				
			||||
                'api_key' => $apiKey, | 
				
			||||
                'course' => $courseId, | 
				
			||||
                'forum' => $forumId, | 
				
			||||
                'thread' => $threadId, | 
				
			||||
            ], | 
				
			||||
        ] | 
				
			||||
    ); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $content = $response->getBody()->getContents(); | 
				
			||||
    $jsonResponse = json_decode($content, true); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse['error']) { | 
				
			||||
        throw new Exception('cant get course documents because : '.$jsonResponse['message']); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse['data']; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
$apiKey = authenticate(); | 
				
			||||
 | 
				
			||||
//Get details about a specific forum thread. | 
				
			||||
$courseForumThread = getCourseForumThread($apiKey, 1, 1, 1); | 
				
			||||
echo json_encode($courseForumThread); | 
				
			||||
@ -0,0 +1,103 @@ | 
				
			||||
<?php | 
				
			||||
 | 
				
			||||
/* For licensing terms, see /license.txt */ | 
				
			||||
 | 
				
			||||
require_once __DIR__.'/../../../../vendor/autoload.php'; | 
				
			||||
/** | 
				
			||||
 * Test example to user API v2.php. | 
				
			||||
 * | 
				
			||||
 * Using Guzzle' HTTP client to call the API endpoint and make requests. | 
				
			||||
 * Change URL on the first lines of createUser() below to suit your needs. | 
				
			||||
 */ | 
				
			||||
 | 
				
			||||
use GuzzleHttp\Client as Client; | 
				
			||||
 | 
				
			||||
// set your URL, username and password here to use it for all webservices in this test file. | 
				
			||||
$webserviceURL = 'https://YOURCHAMILO/main/webservices/api/'; | 
				
			||||
$webserviceUsername = 'USERNAME'; | 
				
			||||
$webservicePassword = 'PASSWORD'; | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * Make a request to get the API key for admin user. | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return string | 
				
			||||
 */ | 
				
			||||
function authenticate() | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    global $webservicePassword; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post('v2.php', [ | 
				
			||||
        'form_params' => [ | 
				
			||||
            'action' => 'authenticate', | 
				
			||||
            'username' => $webserviceUsername, | 
				
			||||
            'password' => $webservicePassword, | 
				
			||||
        ], | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $jsonResponse = json_decode($response->getBody()->getContents()); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse->error) { | 
				
			||||
        throw new Exception('Authentication failed because : '.$jsonResponse->message); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse->data->apiKey; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * @param $apiKey | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return int | 
				
			||||
 */ | 
				
			||||
function getCourseInfo($apiKey, $courseId) | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post( | 
				
			||||
        'v2.php', | 
				
			||||
        [ | 
				
			||||
            'form_params' => [ | 
				
			||||
                // data for the user who makes the request | 
				
			||||
                'action' => 'course_info', | 
				
			||||
                'username' => $webserviceUsername, | 
				
			||||
                'api_key' => $apiKey, | 
				
			||||
                'course' => $courseId, | 
				
			||||
            ], | 
				
			||||
        ] | 
				
			||||
    ); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $content = $response->getBody()->getContents(); | 
				
			||||
    $jsonResponse = json_decode($content, true); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse['error']) { | 
				
			||||
        throw new Exception('Cant get course info because : '.$jsonResponse['message']); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse['data']; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
$apiKey = authenticate(); | 
				
			||||
 | 
				
			||||
//Get information about one course in particular | 
				
			||||
$userMessages = getCourseInfo($apiKey, 1); | 
				
			||||
echo json_encode($userMessages); | 
				
			||||
@ -0,0 +1,106 @@ | 
				
			||||
<?php | 
				
			||||
 | 
				
			||||
/* For licensing terms, see /license.txt */ | 
				
			||||
 | 
				
			||||
require_once __DIR__.'/../../../../vendor/autoload.php'; | 
				
			||||
/** | 
				
			||||
 * Test example to user API v2.php. | 
				
			||||
 * | 
				
			||||
 * Using Guzzle' HTTP client to call the API endpoint and make requests. | 
				
			||||
 * Change URL on the first lines of createUser() below to suit your needs. | 
				
			||||
 */ | 
				
			||||
 | 
				
			||||
use GuzzleHttp\Client as Client; | 
				
			||||
 | 
				
			||||
// set your URL, username and password here to use it for all webservices in this test file. | 
				
			||||
$webserviceURL = 'https://YOURCHAMILO/main/webservices/api/'; | 
				
			||||
$webserviceUsername = 'USERNAME'; | 
				
			||||
$webservicePassword = 'PASSWORD'; | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * Make a request to get the API key for admin user. | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return string | 
				
			||||
 */ | 
				
			||||
function authenticate() | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    global $webservicePassword; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post('v2.php', [ | 
				
			||||
        'form_params' => [ | 
				
			||||
            'action' => 'authenticate', | 
				
			||||
            'username' => $webserviceUsername, | 
				
			||||
            'password' => $webservicePassword, | 
				
			||||
        ], | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $jsonResponse = json_decode($response->getBody()->getContents()); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse->error) { | 
				
			||||
        throw new Exception('Authentication failed because : '.$jsonResponse->message); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse->data->apiKey; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * @param $apiKey | 
				
			||||
 * @param $courseId | 
				
			||||
 * @param $lpId | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return array | 
				
			||||
 */ | 
				
			||||
function getCourseForumThread($apiKey, $courseId, $lpId) | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post( | 
				
			||||
        'v2.php', | 
				
			||||
        [ | 
				
			||||
            'form_params' => [ | 
				
			||||
                // data for the user who makes the request | 
				
			||||
                'action' => 'course_learnpath', | 
				
			||||
                'username' => $webserviceUsername, | 
				
			||||
                'api_key' => $apiKey, | 
				
			||||
                'course' => $courseId, | 
				
			||||
                'lp_id' => $lpId, | 
				
			||||
            ], | 
				
			||||
        ] | 
				
			||||
    ); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $content = $response->getBody()->getContents(); | 
				
			||||
    $jsonResponse = json_decode($content, true); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse['error']) { | 
				
			||||
        throw new Exception('cant get course documents because : '.$jsonResponse['message']); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse['data']; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
$apiKey = authenticate(); | 
				
			||||
 | 
				
			||||
//Get details about a specific forum thread. | 
				
			||||
$courseForumThread = getCourseForumThread($apiKey, 1, 1, 1); | 
				
			||||
echo json_encode($courseForumThread); | 
				
			||||
@ -0,0 +1,113 @@ | 
				
			||||
<?php | 
				
			||||
 | 
				
			||||
/* For licensing terms, see /license.txt */ | 
				
			||||
 | 
				
			||||
require_once __DIR__.'/../../../../vendor/autoload.php'; | 
				
			||||
/** | 
				
			||||
 * Test example to user API v2.php. | 
				
			||||
 * | 
				
			||||
 * Using Guzzle' HTTP client to call the API endpoint and make requests. | 
				
			||||
 * Change URL on the first lines of createUser() below to suit your needs. | 
				
			||||
 */ | 
				
			||||
 | 
				
			||||
use GuzzleHttp\Client as Client; | 
				
			||||
 | 
				
			||||
// set your URL, username and password here to use it for all webservices in this test file. | 
				
			||||
$webserviceURL = 'https://YOURCHAMILO/main/webservices/api/'; | 
				
			||||
$webserviceUsername = 'USERNAME'; | 
				
			||||
$webservicePassword = 'PASSWORD'; | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * Make a request to get the API key for admin user. | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return string | 
				
			||||
 */ | 
				
			||||
function authenticate() | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    global $webservicePassword; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post('v2.php', [ | 
				
			||||
        'form_params' => [ | 
				
			||||
            'action' => 'authenticate', | 
				
			||||
            'username' => $webserviceUsername, | 
				
			||||
            'password' => $webservicePassword, | 
				
			||||
        ], | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $jsonResponse = json_decode($response->getBody()->getContents()); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse->error) { | 
				
			||||
        throw new Exception('Authentication failed because : '.$jsonResponse->message); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse->data->apiKey; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * @param $apiKey | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return int | 
				
			||||
 */ | 
				
			||||
function createSession($apiKey) | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post( | 
				
			||||
        'v2.php', | 
				
			||||
        [ | 
				
			||||
            'form_params' => [ | 
				
			||||
                // data for the user who makes the request | 
				
			||||
                'action' => 'save_session', | 
				
			||||
                'username' => $webserviceUsername, | 
				
			||||
                'api_key' => $apiKey, | 
				
			||||
                // data for new session | 
				
			||||
                'name' => 'Test Session', | 
				
			||||
                'coach_username' => 1, // user_id of CoachUsername that needs to already exist in Chamilo | 
				
			||||
                'access_start_date' => '2020-01-15 15:00:00', | 
				
			||||
                'access_end_date' => '2021-01-15 15:00:00', | 
				
			||||
                'description' => 'My complete text description of the session', | 
				
			||||
                'extra' => [ | 
				
			||||
                    [ | 
				
			||||
                        'extra_Price' => '200', // the "Price" session extra field needs to be already created in Chamilo | 
				
			||||
                    ], | 
				
			||||
                ], | 
				
			||||
            ], | 
				
			||||
        ] | 
				
			||||
    ); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $content = $response->getBody()->getContents(); | 
				
			||||
    $jsonResponse = json_decode($content, true); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse['error']) { | 
				
			||||
        throw new Exception('Cant save session because : '.$jsonResponse['message']); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse['data']['id_session']; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
$apiKey = authenticate(); | 
				
			||||
 | 
				
			||||
//Creating a new session Test Session | 
				
			||||
$sessionId = createSession($apiKey); | 
				
			||||
echo 'ID of new session: '.$sessionId; | 
				
			||||
@ -0,0 +1,119 @@ | 
				
			||||
<?php | 
				
			||||
 | 
				
			||||
/* For licensing terms, see /license.txt */ | 
				
			||||
 | 
				
			||||
require_once __DIR__.'/../../../../vendor/autoload.php'; | 
				
			||||
/** | 
				
			||||
 * Test example to user API v2.php. | 
				
			||||
 * | 
				
			||||
 * Using Guzzle' HTTP client to call the API endpoint and make requests. | 
				
			||||
 * Change URL on the first lines of createUser() below to suit your needs. | 
				
			||||
 */ | 
				
			||||
 | 
				
			||||
use GuzzleHttp\Client; | 
				
			||||
 | 
				
			||||
// set your URL, username and password here to use it for all webservices in this test file. | 
				
			||||
$webserviceURL = 'https://YOURCHAMILO/main/webservices/api/'; | 
				
			||||
$webserviceUsername = 'USERNAME'; | 
				
			||||
$webservicePassword = 'PASSWORD'; | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * Make a request to get the API key for admin user. | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return string | 
				
			||||
 */ | 
				
			||||
function authenticate() | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    global $webservicePassword; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post('v2.php', [ | 
				
			||||
        'form_params' => [ | 
				
			||||
            'action' => 'authenticate', | 
				
			||||
            'username' => $webserviceUsername, | 
				
			||||
            'password' => $webservicePassword, | 
				
			||||
        ], | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $jsonResponse = json_decode($response->getBody()->getContents()); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse->error) { | 
				
			||||
        throw new Exception('Authentication failed because : '.$jsonResponse->message); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse->data->apiKey; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * @param $apiKey | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return int | 
				
			||||
 */ | 
				
			||||
function createUser($apiKey) | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post( | 
				
			||||
        'v2.php', | 
				
			||||
        [ | 
				
			||||
            'form_params' => [ | 
				
			||||
                // data for the user who makes the request | 
				
			||||
                'action' => 'save_user', | 
				
			||||
                'username' => $webserviceUsername, | 
				
			||||
                'api_key' => $apiKey, | 
				
			||||
                // data for new user | 
				
			||||
                'firstname' => 'Test User', | 
				
			||||
                'lastname' => 'Chamilo', | 
				
			||||
                'status' => 5, // student | 
				
			||||
                'email' => 'testuser@example.com', | 
				
			||||
                'loginname' => 'restuser', | 
				
			||||
                'password' => 'restuser', | 
				
			||||
                'original_user_id_name' => 'myplatform_user_id', // field to identify the user in the external system | 
				
			||||
                'original_user_id_value' => '1234', // ID for the user in the external system | 
				
			||||
                'extra' => [ | 
				
			||||
                    [ | 
				
			||||
                        'field_name' => 'age', | 
				
			||||
                        'field_value' => 29, | 
				
			||||
                    ], | 
				
			||||
                ], | 
				
			||||
                'language' => 'english', | 
				
			||||
                //'phone' => '', | 
				
			||||
                //'expiration_date' => '', | 
				
			||||
            ], | 
				
			||||
        ] | 
				
			||||
    ); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $jsonResponse = json_decode($response->getBody()->getContents()); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse->error) { | 
				
			||||
        throw new Exception('User not created because : '.$jsonResponse->message); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse->data[0]; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
$apiKey = authenticate(); | 
				
			||||
 | 
				
			||||
//Creating a new user restuser | 
				
			||||
$userId = createUser($apiKey); | 
				
			||||
echo 'ID of new user: '.$userId; | 
				
			||||
@ -0,0 +1,114 @@ | 
				
			||||
<?php | 
				
			||||
 | 
				
			||||
/* For licensing terms, see /license.txt */ | 
				
			||||
 | 
				
			||||
require_once __DIR__.'/../../../../vendor/autoload.php'; | 
				
			||||
/** | 
				
			||||
 * Test example to user API v2.php. | 
				
			||||
 * | 
				
			||||
 * Using Guzzle' HTTP client to call the API endpoint and make requests. | 
				
			||||
 * Change URL on the first lines of createUser() below to suit your needs. | 
				
			||||
 */ | 
				
			||||
 | 
				
			||||
use GuzzleHttp\Client as Client; | 
				
			||||
 | 
				
			||||
// set your URL, username and password here to use it for all webservices in this test file. | 
				
			||||
$webserviceURL = 'https://YOURCHAMILO/main/webservices/api/'; | 
				
			||||
$webserviceUsername = 'USERNAME'; | 
				
			||||
$webservicePassword = 'PASSWORD'; | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * Make a request to get the API key for admin user. | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return string | 
				
			||||
 */ | 
				
			||||
function authenticate() | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    global $webservicePassword; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post('v2.php', [ | 
				
			||||
        'form_params' => [ | 
				
			||||
            'action' => 'authenticate', | 
				
			||||
            'username' => $webserviceUsername, | 
				
			||||
            'password' => $webservicePassword, | 
				
			||||
        ], | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $jsonResponse = json_decode($response->getBody()->getContents()); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse->error) { | 
				
			||||
        throw new Exception('Authentication failed because : '.$jsonResponse->message); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse->data->apiKey; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * @param $apiKey | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return int | 
				
			||||
 */ | 
				
			||||
function updateUserFromUsername($apiKey) | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post('v2.php', [ | 
				
			||||
        'form_params' => [ | 
				
			||||
            // data for the user who makes the request | 
				
			||||
            'action' => 'update_user_from_username', | 
				
			||||
            'username' => $webserviceUsername, | 
				
			||||
            'api_key' => $apiKey, | 
				
			||||
            // data for the user to be updated | 
				
			||||
            'loginName' => 'TestUser', | 
				
			||||
            'firstname' => 'Test User', | 
				
			||||
            'lastname' => 'Chamilo', | 
				
			||||
            'status' => 5, // student | 
				
			||||
            'email' => 'testuser@example.com', | 
				
			||||
            'enabled' => 1, | 
				
			||||
            'extra' => [ | 
				
			||||
                [ | 
				
			||||
                    'field_name' => 'age', // The "age" user extra field needs to already be created on Chamilo | 
				
			||||
                    'field_value' => 35, | 
				
			||||
                ], | 
				
			||||
            ], | 
				
			||||
            'language' => 'english', | 
				
			||||
            'expiration_date' => '2025-12-31 23:59:59', | 
				
			||||
        ], | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $jsonResponse = json_decode($response->getBody()->getContents()); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse->error) { | 
				
			||||
        throw new Exception('User not updated because : '.$jsonResponse->message); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse->data[0]; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
$apiKey = authenticate(); | 
				
			||||
 | 
				
			||||
//update user TestUser | 
				
			||||
if (updateUserFromUsername($apiKey)) { | 
				
			||||
    echo 'User updated successfully'; | 
				
			||||
} | 
				
			||||
@ -0,0 +1,101 @@ | 
				
			||||
<?php | 
				
			||||
 | 
				
			||||
/* For licensing terms, see /license.txt */ | 
				
			||||
 | 
				
			||||
require_once __DIR__.'/../../../../vendor/autoload.php'; | 
				
			||||
/** | 
				
			||||
 * Test example to user API v2.php. | 
				
			||||
 * | 
				
			||||
 * Using Guzzle' HTTP client to call the API endpoint and make requests. | 
				
			||||
 * Change URL on the first lines of createUser() below to suit your needs. | 
				
			||||
 */ | 
				
			||||
 | 
				
			||||
use GuzzleHttp\Client as Client; | 
				
			||||
 | 
				
			||||
// set your URL, username and password here to use it for all webservices in this test file. | 
				
			||||
$webserviceURL = 'https://YOURCHAMILO/main/webservices/api/'; | 
				
			||||
$webserviceUsername = 'USERNAME'; | 
				
			||||
$webservicePassword = 'PASSWORD'; | 
				
			||||
/** | 
				
			||||
 * Make a request to get the API key for admin user. | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return string | 
				
			||||
 */ | 
				
			||||
function authenticate() | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    global $webservicePassword; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
]); | 
				
			||||
 | 
				
			||||
    $response = $client->post('v2.php', [ | 
				
			||||
        'form_params' => [ | 
				
			||||
            'action' => 'authenticate', | 
				
			||||
            'username' => $webserviceUsername, | 
				
			||||
            'password' => $webservicePassword, | 
				
			||||
        ], | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $jsonResponse = json_decode($response->getBody()->getContents()); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse->error) { | 
				
			||||
        throw new Exception('Authentication failed because : '.$jsonResponse->message); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse->data->apiKey; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * @param $apiKey | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return int | 
				
			||||
 */ | 
				
			||||
function getUserCourses($apiKey) | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
]); | 
				
			||||
 | 
				
			||||
    $response = $client->post( | 
				
			||||
        'v2.php', | 
				
			||||
        [ | 
				
			||||
            'form_params' => [ | 
				
			||||
                // data for the user who makes the request | 
				
			||||
                'action' => 'user_courses', | 
				
			||||
                'username' => $webserviceUsername, | 
				
			||||
                'api_key' => $apiKey, | 
				
			||||
            ], | 
				
			||||
        ] | 
				
			||||
    ); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $content = $response->getBody()->getContents(); | 
				
			||||
    $jsonResponse = json_decode($content, true); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse['error']) { | 
				
			||||
        throw new Exception('Cant get user courses because : '.$jsonResponse['message']); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse['data']; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
$apiKey = authenticate(); | 
				
			||||
 | 
				
			||||
//Get a list of courses of the user calling this service. | 
				
			||||
$userMessages = getUserCourses($apiKey); | 
				
			||||
echo json_encode($userMessages); | 
				
			||||
@ -0,0 +1,106 @@ | 
				
			||||
<?php | 
				
			||||
 | 
				
			||||
/* For licensing terms, see /license.txt */ | 
				
			||||
 | 
				
			||||
require_once __DIR__.'/../../../../vendor/autoload.php'; | 
				
			||||
/** | 
				
			||||
 * Test example to user API v2.php. | 
				
			||||
 * | 
				
			||||
 * Using Guzzle' HTTP client to call the API endpoint and make requests. | 
				
			||||
 * Change URL on the first lines of createUser() below to suit your needs. | 
				
			||||
 */ | 
				
			||||
 | 
				
			||||
use GuzzleHttp\Client as Client; | 
				
			||||
 | 
				
			||||
// set your URL, username and password here to use it for all webservices in this test file. | 
				
			||||
$webserviceURL = 'https://YOURCHAMILO/main/webservices/api/'; | 
				
			||||
$webserviceUsername = 'USERNAME'; | 
				
			||||
$webservicePassword = 'PASSWORD'; | 
				
			||||
/** | 
				
			||||
 * Make a request to get the API key for admin user. | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return string | 
				
			||||
 */ | 
				
			||||
function authenticate() | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    global $webservicePassword; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post('v2.php', [ | 
				
			||||
        'form_params' => [ | 
				
			||||
            'action' => 'authenticate', | 
				
			||||
            'username' => $webserviceUsername, | 
				
			||||
            'password' => $webservicePassword, | 
				
			||||
        ], | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $jsonResponse = json_decode($response->getBody()->getContents()); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse->error) { | 
				
			||||
        throw new Exception('Authentication failed because : '.$jsonResponse->message); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse->data->apiKey; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * @param $apiKey | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return int | 
				
			||||
 */ | 
				
			||||
function getUserMessageRead($apiKey) | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post( | 
				
			||||
        'v2.php', | 
				
			||||
        [ | 
				
			||||
            'form_params' => [ | 
				
			||||
                // data for the user who makes the request | 
				
			||||
                'action' => 'user_message_read', | 
				
			||||
                'username' => $webserviceUsername, | 
				
			||||
                'api_key' => $apiKey, | 
				
			||||
                'messages' => [ | 
				
			||||
                    1, | 
				
			||||
                    2, | 
				
			||||
                    3, | 
				
			||||
                ], | 
				
			||||
            ], | 
				
			||||
        ] | 
				
			||||
    ); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $content = $response->getBody()->getContents(); | 
				
			||||
    $jsonResponse = json_decode($content, true); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse['error']) { | 
				
			||||
        throw new Exception('Cant get read messages because : '.$jsonResponse['message']); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse['data']; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
$apiKey = authenticate(); | 
				
			||||
 | 
				
			||||
//Mark a specific message (in the social network interface) as read. | 
				
			||||
$userMessages = getUserMessageRead($apiKey); | 
				
			||||
echo json_encode($userMessages); | 
				
			||||
@ -0,0 +1,107 @@ | 
				
			||||
<?php | 
				
			||||
 | 
				
			||||
/* For licensing terms, see /license.txt */ | 
				
			||||
 | 
				
			||||
require_once __DIR__.'/../../../../vendor/autoload.php'; | 
				
			||||
/** | 
				
			||||
 * Test example to user API v2.php. | 
				
			||||
 * | 
				
			||||
 * Using Guzzle' HTTP client to call the API endpoint and make requests. | 
				
			||||
 * Change URL on the first lines of createUser() below to suit your needs. | 
				
			||||
 */ | 
				
			||||
 | 
				
			||||
use GuzzleHttp\Client as Client; | 
				
			||||
 | 
				
			||||
// set your URL, username and password here to use it for all webservices in this test file. | 
				
			||||
$webserviceURL = 'https://YOURCHAMILO/main/webservices/api/'; | 
				
			||||
$webserviceUsername = 'USERNAME'; | 
				
			||||
$webservicePassword = 'PASSWORD'; | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * Make a request to get the API key for admin user. | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return string | 
				
			||||
 */ | 
				
			||||
function authenticate() | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    global $webservicePassword; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post('v2.php', [ | 
				
			||||
        'form_params' => [ | 
				
			||||
            'action' => 'authenticate', | 
				
			||||
            'username' => $webserviceUsername, | 
				
			||||
            'password' => $webservicePassword, | 
				
			||||
        ], | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $jsonResponse = json_decode($response->getBody()->getContents()); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse->error) { | 
				
			||||
        throw new Exception('Authentication failed because : '.$jsonResponse->message); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse->data->apiKey; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * @param $apiKey | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return int | 
				
			||||
 */ | 
				
			||||
function getUserMessageUnread($apiKey) | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post( | 
				
			||||
        'v2.php', | 
				
			||||
        [ | 
				
			||||
            'form_params' => [ | 
				
			||||
                // data for the user who makes the request | 
				
			||||
                'action' => 'user_message_unread', | 
				
			||||
                'username' => $webserviceUsername, | 
				
			||||
                'api_key' => $apiKey, | 
				
			||||
                'messages' => [ | 
				
			||||
                    1, | 
				
			||||
                    2, | 
				
			||||
                    3, | 
				
			||||
                ], | 
				
			||||
            ], | 
				
			||||
        ] | 
				
			||||
    ); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $content = $response->getBody()->getContents(); | 
				
			||||
    $jsonResponse = json_decode($content, true); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse['error']) { | 
				
			||||
        throw new Exception('Cant get unread messages because : '.$jsonResponse['message']); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse['data']; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
$apiKey = authenticate(); | 
				
			||||
 | 
				
			||||
//Mark a specific message (in the social network interface) as "unread". | 
				
			||||
$userMessages = getUserMessageUnread($apiKey); | 
				
			||||
echo json_encode($userMessages); | 
				
			||||
@ -0,0 +1,102 @@ | 
				
			||||
<?php | 
				
			||||
 | 
				
			||||
/* For licensing terms, see /license.txt */ | 
				
			||||
 | 
				
			||||
require_once __DIR__.'/../../../../vendor/autoload.php'; | 
				
			||||
/** | 
				
			||||
 * Test example to user API v2.php. | 
				
			||||
 * | 
				
			||||
 * Using Guzzle' HTTP client to call the API endpoint and make requests. | 
				
			||||
 * Change URL on the first lines of createUser() below to suit your needs. | 
				
			||||
 */ | 
				
			||||
 | 
				
			||||
use GuzzleHttp\Client as Client; | 
				
			||||
 | 
				
			||||
// set your URL, username and password here to use it for all webservices in this test file. | 
				
			||||
$webserviceURL = 'https://YOURCHAMILO/main/webservices/api/'; | 
				
			||||
$webserviceUsername = 'USERNAME'; | 
				
			||||
$webservicePassword = 'PASSWORD'; | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * Make a request to get the API key for admin user. | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return string | 
				
			||||
 */ | 
				
			||||
function authenticate() | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    global $webservicePassword; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
        ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post('v2.php', [ | 
				
			||||
        'form_params' => [ | 
				
			||||
            'action' => 'authenticate', | 
				
			||||
            'username' => $webserviceUsername, | 
				
			||||
            'password' => $webservicePassword, | 
				
			||||
        ], | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $jsonResponse = json_decode($response->getBody()->getContents()); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse->error) { | 
				
			||||
        throw new Exception('Authentication failed because : '.$jsonResponse->message); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse->data->apiKey; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * @param $apiKey | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return int | 
				
			||||
 */ | 
				
			||||
function getUserMessages($apiKey) | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
        ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post( | 
				
			||||
        'v2.php', | 
				
			||||
        [ | 
				
			||||
            'form_params' => [ | 
				
			||||
                // data for the user who makes the request | 
				
			||||
                'action' => 'user_messages', | 
				
			||||
                'username' => $webserviceUsername, | 
				
			||||
                'api_key' => $apiKey, | 
				
			||||
            ], | 
				
			||||
        ] | 
				
			||||
    ); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $content = $response->getBody()->getContents(); | 
				
			||||
    $jsonResponse = json_decode($content, true); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse['error']) { | 
				
			||||
        throw new Exception('Cant get user messages because : '.$jsonResponse['message']); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse['data']; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
$apiKey = authenticate(); | 
				
			||||
 | 
				
			||||
//Read user mesages | 
				
			||||
$userMessages = getUserMessages($apiKey); | 
				
			||||
echo json_encode($userMessages); | 
				
			||||
@ -0,0 +1,102 @@ | 
				
			||||
<?php | 
				
			||||
 | 
				
			||||
/* For licensing terms, see /license.txt */ | 
				
			||||
 | 
				
			||||
require_once __DIR__.'/../../../../vendor/autoload.php'; | 
				
			||||
/** | 
				
			||||
 * Test example to user API v2.php. | 
				
			||||
 * | 
				
			||||
 * Using Guzzle' HTTP client to call the API endpoint and make requests. | 
				
			||||
 * Change URL on the first lines of createUser() below to suit your needs. | 
				
			||||
 */ | 
				
			||||
 | 
				
			||||
use GuzzleHttp\Client as Client; | 
				
			||||
 | 
				
			||||
// set your URL, username and password here to use it for all webservices in this test file. | 
				
			||||
$webserviceURL = 'https://YOURCHAMILO/main/webservices/api/'; | 
				
			||||
$webserviceUsername = 'USERNAME'; | 
				
			||||
$webservicePassword = 'PASSWORD'; | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * Make a request to get the API key for admin user. | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return string | 
				
			||||
 */ | 
				
			||||
function authenticate() | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    global $webservicePassword; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post('v2.php', [ | 
				
			||||
        'form_params' => [ | 
				
			||||
            'action' => 'authenticate', | 
				
			||||
            'username' => $webserviceUsername, | 
				
			||||
            'password' => $webservicePassword, | 
				
			||||
        ], | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $jsonResponse = json_decode($response->getBody()->getContents()); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse->error) { | 
				
			||||
        throw new Exception('Authentication failed because : '.$jsonResponse->message); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse->data->apiKey; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * @param $apiKey | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return int | 
				
			||||
 */ | 
				
			||||
function getUserProfile($apiKey) | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post( | 
				
			||||
        'v2.php', | 
				
			||||
        [ | 
				
			||||
            'form_params' => [ | 
				
			||||
                // data for the user who makes the request | 
				
			||||
                'action' => 'user_profile', | 
				
			||||
                'username' => $webserviceUsername, | 
				
			||||
                'api_key' => $apiKey, | 
				
			||||
            ], | 
				
			||||
        ] | 
				
			||||
    ); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $content = $response->getBody()->getContents(); | 
				
			||||
    $jsonResponse = json_decode($content, true); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse['error']) { | 
				
			||||
        throw new Exception('cant get user profile because : '.$jsonResponse['message']); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse['data']; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
$apiKey = authenticate(); | 
				
			||||
 | 
				
			||||
//Get the list of calendar events from inside the given course. | 
				
			||||
$userProfile = getUserProfile($apiKey); | 
				
			||||
echo json_encode($userProfile); | 
				
			||||
@ -0,0 +1,102 @@ | 
				
			||||
<?php | 
				
			||||
 | 
				
			||||
/* For licensing terms, see /license.txt */ | 
				
			||||
 | 
				
			||||
require_once __DIR__.'/../../../../vendor/autoload.php'; | 
				
			||||
/** | 
				
			||||
 * Test example to user API v2.php. | 
				
			||||
 * | 
				
			||||
 * Using Guzzle' HTTP client to call the API endpoint and make requests. | 
				
			||||
 * Change URL on the first lines of createUser() below to suit your needs. | 
				
			||||
 */ | 
				
			||||
 | 
				
			||||
use GuzzleHttp\Client as Client; | 
				
			||||
 | 
				
			||||
// set your URL, username and password here to use it for all webservices in this test file. | 
				
			||||
$webserviceURL = 'https://YOURCHAMILO/main/webservices/api/'; | 
				
			||||
$webserviceUsername = 'USERNAME'; | 
				
			||||
$webservicePassword = 'PASSWORD'; | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * Make a request to get the API key for admin user. | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return string | 
				
			||||
 */ | 
				
			||||
function authenticate() | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    global $webservicePassword; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post('v2.php', [ | 
				
			||||
        'form_params' => [ | 
				
			||||
            'action' => 'authenticate', | 
				
			||||
            'username' => $webserviceUsername, | 
				
			||||
            'password' => $webservicePassword, | 
				
			||||
        ], | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $jsonResponse = json_decode($response->getBody()->getContents()); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse->error) { | 
				
			||||
        throw new Exception('Authentication failed because : '.$jsonResponse->message); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse->data->apiKey; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * @param $apiKey | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return int | 
				
			||||
 */ | 
				
			||||
function getUserSessions($apiKey) | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post( | 
				
			||||
        'v2.php', | 
				
			||||
        [ | 
				
			||||
            'form_params' => [ | 
				
			||||
                // data for the user who makes the request | 
				
			||||
                'action' => 'user_sessions', | 
				
			||||
                'username' => $webserviceUsername, | 
				
			||||
                'api_key' => $apiKey, | 
				
			||||
            ], | 
				
			||||
        ] | 
				
			||||
    ); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $content = $response->getBody()->getContents(); | 
				
			||||
    $jsonResponse = json_decode($content, true); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse['error']) { | 
				
			||||
        throw new Exception('cant get user profile because : '.$jsonResponse['message']); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse['data']; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
$apiKey = authenticate(); | 
				
			||||
 | 
				
			||||
//Get the list of sessions of the current user | 
				
			||||
$userSessions = getUserSessions($apiKey); | 
				
			||||
echo json_encode($userSessions); | 
				
			||||
@ -0,0 +1,107 @@ | 
				
			||||
<?php | 
				
			||||
 | 
				
			||||
/* For licensing terms, see /license.txt */ | 
				
			||||
 | 
				
			||||
require_once __DIR__.'/../../../../vendor/autoload.php'; | 
				
			||||
/** | 
				
			||||
 * Test example to user API v2.php. | 
				
			||||
 * | 
				
			||||
 * Using Guzzle' HTTP client to call the API endpoint and make requests. | 
				
			||||
 * Change URL on the first lines of createUser() below to suit your needs. | 
				
			||||
 */ | 
				
			||||
 | 
				
			||||
use GuzzleHttp\Client as Client; | 
				
			||||
 | 
				
			||||
// set your URL, username and password here to use it for all webservices in this test file. | 
				
			||||
$webserviceURL = 'https://YOURCHAMILO/main/webservices/api/'; | 
				
			||||
$webserviceUsername = 'USERNAME'; | 
				
			||||
$webservicePassword = 'PASSWORD'; | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * Make a request to get the API key for admin user. | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return string | 
				
			||||
 */ | 
				
			||||
function authenticate() | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    global $webservicePassword; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post('v2.php', [ | 
				
			||||
        'form_params' => [ | 
				
			||||
            'action' => 'authenticate', | 
				
			||||
            'username' => $webserviceUsername, | 
				
			||||
            'password' => $webservicePassword, | 
				
			||||
        ], | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $jsonResponse = json_decode($response->getBody()->getContents()); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse->error) { | 
				
			||||
        throw new Exception('Authentication failed because : '.$jsonResponse->message); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse->data->apiKey; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * @param $apiKey | 
				
			||||
 * | 
				
			||||
 * @throws Exception | 
				
			||||
 * | 
				
			||||
 * @return int | 
				
			||||
 */ | 
				
			||||
function getUserNameExist($apiKey, $loginname) | 
				
			||||
{ | 
				
			||||
    global $webserviceURL; | 
				
			||||
    global $webserviceUsername; | 
				
			||||
    $client = new Client([ | 
				
			||||
        'base_uri' => $webserviceURL, | 
				
			||||
    ]); | 
				
			||||
 | 
				
			||||
    $response = $client->post( | 
				
			||||
        'v2.php', | 
				
			||||
        [ | 
				
			||||
            'form_params' => [ | 
				
			||||
                // data for the user who makes the request | 
				
			||||
                'action' => 'username_exist', | 
				
			||||
                'username' => $webserviceUsername, | 
				
			||||
                'api_key' => $apiKey, | 
				
			||||
                'loginname' => $loginname, | 
				
			||||
            ], | 
				
			||||
        ] | 
				
			||||
    ); | 
				
			||||
 | 
				
			||||
    if ($response->getStatusCode() !== 200) { | 
				
			||||
        throw new Exception('Entry denied with code : '.$response->getStatusCode()); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $content = $response->getBody()->getContents(); | 
				
			||||
    $jsonResponse = json_decode($content, true); | 
				
			||||
 | 
				
			||||
    if ($jsonResponse['error']) { | 
				
			||||
        throw new Exception('cant get user profile because : '.$jsonResponse['message']); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    return $jsonResponse['data'][0]; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
$apiKey = authenticate(); | 
				
			||||
 | 
				
			||||
//Return if a username already exist | 
				
			||||
$userNameExist = getUserNameExist($apiKey, 'admin'); | 
				
			||||
if ($userNameExist == true) { | 
				
			||||
    echo "User name exist"; | 
				
			||||
} else { | 
				
			||||
    echo "User doesnt name exist"; | 
				
			||||
} | 
				
			||||
					Loading…
					
					
				
		Reference in new issue