Webservice: Fix optional parameter and improve exception when missing required parameter - refs BT#20290

Author: @BorjaSanchezBeezNest
pull/4463/head
Borja Sánchez 3 years ago committed by GitHub
parent b686c7f694
commit 03a7bf9fbb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 9
      main/inc/lib/webservices/Rest.php
  2. 6
      main/webservices/api/v2.php

@ -2827,7 +2827,7 @@ class Rest extends WebService
*
* @return array e.g: [ { "id": 4, "title": "aiken", "updated_by": "-", "type": "1", "completion": 0 } ]
*/
public function getTestAverageResultsList(array $ids = [], array $fields = []): array
public function getTestAverageResultsList(array $ids = [], ?array $fields = []): array
{
self::protectAdminEndpoint();
$tableTrackExercises = Database::get_main_table(TABLE_STATISTIC_TRACK_E_EXERCISES);
@ -2845,9 +2845,10 @@ class Rest extends WebService
if (!is_array($fields)) {
$fields = [$fields];
}
foreach ($fields as $field) {
$extraArray[$field] = '';
if (!empty($fields)) {
foreach ($fields as $field) {
$extraArray[$field] = '-';
}
}
$queryUsersInCourses = "

@ -817,9 +817,13 @@ try {
);
break;
case Rest::GET_TEST_AVERAGE_RESULTS_LIST:
if (empty($_POST['ids'])) {
throw new Exception(get_lang('NoData'));
}
Event::addEvent(LOG_WS.$action, 'success', 'true');
$fields = $_POST['fields'] ?? [];
$restResponse->setData(
$restApi->getTestAverageResultsList($_POST['ids'], $_POST['fields'])
$restApi->getTestAverageResultsList($_POST['ids'], $fields)
);
break;
default:

Loading…
Cancel
Save