Skip to content

Commit

Permalink
MDL-76583 core_external: Migrate external_function_parameters class
Browse files Browse the repository at this point in the history
  • Loading branch information
andrewnicols committed Jan 18, 2023
1 parent 279ae4d commit 698f06e
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 35 deletions.
1 change: 0 additions & 1 deletion lib/external/classes/external_api.php
Expand Up @@ -23,7 +23,6 @@
use core_component;
use core_php_time_limit;
use external_description;
use external_function_parameters;
use external_single_structure;
use external_value;
use invalid_parameter_exception;
Expand Down
50 changes: 50 additions & 0 deletions lib/external/classes/external_function_parameters.php
@@ -0,0 +1,50 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.

namespace core_external;

/**
* Description of top level - PHP function parameters.
*
* @package core_external
* @copyright 2009 Petr Skodak
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class external_function_parameters extends external_single_structure {
/**
* Constructor - does extra checking to prevent top level optional parameters.
*
* @param array $keys
* @param string $desc
* @param int $required
* @param array $default
*/
public function __construct(array $keys, $desc = '', $required = VALUE_REQUIRED, $default = null) {
global $CFG;

if ($CFG->debugdeveloper) {
foreach ($keys as $key => $value) {
if ($value instanceof external_value) {
if ($value->required == VALUE_OPTIONAL) {
debugging('External function parameters: invalid OPTIONAL value specified.', DEBUG_DEVELOPER);
break;
}
}
}
}
parent::__construct($keys, $desc, $required, $default);
}
}
35 changes: 1 addition & 34 deletions lib/externallib.php
Expand Up @@ -49,41 +49,8 @@ class_alias(\core_external\external_description::class, 'external_description');
class_alias(\core_external\external_value::class, 'external_value');
class_alias(\core_external\external_single_structure::class, 'external_single_structure');
class_alias(\core_external\external_multiple_structure::class, 'external_multiple_structure');
class_alias(\core_external\external_function_parameters::class, 'external_function_parameters');

/**
* Description of top level - PHP function parameters.
*
* @package core_webservice
* @copyright 2009 Petr Skodak
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 2.0
*/
class external_function_parameters extends external_single_structure {

/**
* Constructor - does extra checking to prevent top level optional parameters.
*
* @param array $keys
* @param string $desc
* @param bool $required
* @param array $default
*/
public function __construct(array $keys, $desc='', $required=VALUE_REQUIRED, $default=null) {
global $CFG;

if ($CFG->debugdeveloper) {
foreach ($keys as $key => $value) {
if ($value instanceof external_value) {
if ($value->required == VALUE_OPTIONAL) {
debugging('External function parameters: invalid OPTIONAL value specified.', DEBUG_DEVELOPER);
break;
}
}
}
}
parent::__construct($keys, $desc, $required, $default);
}
}

/**
* Generate a token
Expand Down

0 comments on commit 698f06e

Please sign in to comment.