MDL-65078 competencies: webservices

The webservice list_course_module_competencies calls a function that does not exist and
is not exposed as a webservice.
This commit is contained in:
Damyon Wiese
2019-07-24 09:14:28 +08:00
committed by Peter
parent f7e108438f
commit bde97497ef
6 changed files with 148 additions and 4 deletions
+47 -2
View File
@@ -31,6 +31,7 @@ require_once("$CFG->libdir/grade/grade_scale.php");
use context;
use context_system;
use context_course;
use context_module;
use context_helper;
use context_user;
use coding_exception;
@@ -48,6 +49,7 @@ use core_competency\external\competency_exporter;
use core_competency\external\competency_framework_exporter;
use core_competency\external\course_competency_exporter;
use core_competency\external\course_competency_settings_exporter;
use core_competency\external\course_module_competency_exporter;
use core_competency\external\evidence_exporter;
use core_competency\external\performance_helper;
use core_competency\external\plan_exporter;
@@ -1274,9 +1276,9 @@ class external extends external_api {
foreach ($apiresult as $cmrecord) {
$one = new \stdClass();
$exporter = new competency_exporter($cmrecord['competency']);
$exporter = new competency_exporter($cmrecord['competency'], ['context' => $context]);
$one->competency = $exporter->export($output);
$exporter = new course_module_competency_exporter($cmrecord['coursemodulecompetency']);
$exporter = new course_module_competency_exporter($cmrecord['coursemodulecompetency'], ['context' => $context]);
$one->coursemodulecompetency = $exporter->export($output);
$result[] = (array) $one;
@@ -1316,6 +1318,49 @@ class external extends external_api {
return new external_function_parameters($params);
}
/**
* Returns description of count_course_module_competencies() parameters.
*
* @return \external_function_parameters
*/
public static function count_course_module_competencies_parameters() {
$cmid = new external_value(
PARAM_INT,
'The course module id',
VALUE_REQUIRED
);
$params = array(
'cmid' => $cmid
);
return new external_function_parameters($params);
}
/**
* List the course modules using this competency (visible to this user) in this course.
*
* @param int $cmid The course module id to check.
* @return array
*/
public static function count_course_module_competencies($cmid) {
$params = self::validate_parameters(self::count_course_module_competencies_parameters(), array(
'cmid' => $cmid
));
$context = context_module::instance($params['cmid']);
self::validate_context($context);
return api::count_course_module_competencies($params['cmid']);
}
/**
* Returns description of count_course_module_competencies() result value.
*
* @return \external_description
*/
public static function count_course_module_competencies_returns() {
return new external_value(PARAM_INT, 'The number of competencies found.');
}
/**
* List the competencies (visible to this user) in this course.
*