Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The file in webservices/api/example/add_courses_session.php is actually to add users not courses #5408

Open
steven1963 opened this issue Apr 20, 2024 · 0 comments

Comments

@steven1963
Copy link

steven1963 commented Apr 20, 2024

Describe
The file in webservices/api/example/add_courses_session.php is actually to add users not courses

To Reproduce
Steps to reproduce the behavior:
I checked both the latest download zip file and the repository on Github Both are wrong

Expected behavior
API to add course to a Session but adds users

Screenshots
The file in webservices/api/example/add_courses_session.php is actually to add users not courses

Desktop (please complete the following information):

  • OS: Mac
  • Browser all

**Server

  • OS: windows
  • Version of Chamilo: 1.11.x
  • Version of PHP: 7.4

Additional context
Add any other context about the problem here.
The file in webservices/api/example/add_courses_session.php is actually to add users not courses

See content of the example file.

`<?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 = 'http://MYDOMAIN/main/webservices/api/';
$webserviceUsername = 'EMS';
'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';
}
`

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant