Following is the service.php file
$functions = array (
'block_mystatistics_get_mystatistics_data' => array (
'classname' => 'block_mystatistics_external',
'methodname' => 'get_mystatistics_data',
'classpath' => 'blocks/mystatistics/classes/external.php',
'description' => '',
'requiredcapability' => '',
'type' => 'read',
'services' => array(MOODLE_OFFICIAL_MOBILE_SERVICE)
)
);
external.php
defined('MOODLE_INTERNAL') || die;
require_once($CFG->libdir . '/externallib.php');
require_once($CFG->
dirroot . '/blocks/mystatistics/utils.php');
class block_mystatistics_external extends external_api {
public static function get_mystatistics_data_parameters() {
return new external_function_parameters();
}
public static function get_mystatistics_data() {
global $USER;
$utilObj = new utils($USER->id);
$templateContext = $utilObj->fetch_required_data();
return $templateContext;
}
public static function get_mystatistics_data_returns() {
return new external_single_structure(array(
'flag' => new external_value(PARAM_INT,'Flag',VALUE_OPTIONAL),
'courseCount' => new external_value(PARAM_INT,'Course Count',VALUE_OPTIONAL),
'courseCompletion' => new external_value(PARAM_INT,'Course Completion',VALUE_OPTIONAL),
'courseRemaining' => new external_value(PARAM_INT,'Course Remaining',VALUE_OPTIONAL),
'courseCompletionPercentage' => new external_value(PARAM_FLOAT,'Course Completion Percentage',VALUE_OPTIONAL),
'mandatorydonut' => new external_value(PARAM_INT,'Mandatory Donut',VALUE_OPTIONAL),
'completedratio' => new external_value(PARAM_INT,'Completed Ratio',VALUE_OPTIONAL),
'activityCount' => new external_value(PARAM_INT,'Activity Count',VALUE_OPTIONAL),
'mandatoryactivityCount' => new external_value(PARAM_INT,'Mandatory Activity Count',VALUE_OPTIONAL),
'activityCompletion' => new external_value(PARAM_INT,'Activity Completion',VALUE_OPTIONAL),
'mandatoryactivityCompletion' => new external_value(PARAM_INT,'Mandatory Activity Completion',VALUE_OPTIONAL),
'activityProgress' => new external_value(PARAM_INT,'Activity Progress',VALUE_OPTIONAL),
'mandatoryactivityProgress' => new external_value(PARAM_INT,'Mandatory Activity Progress',VALUE_OPTIONAL),
'activityRemaining' => new external_value(PARAM_INT,'Activity Remaining',VALUE_OPTIONAL),
'mandatoryactivityRemaining' => new external_value(PARAM_INT,'Mandatory Activity Remaining',VALUE_OPTIONAL),
'progresslikelp' => new external_value(PARAM_TEXT,'Progress like LP',VALUE_OPTIONAL),
'activityCompletionPercentage' => new external_value(PARAM_FLOAT,'Activity Completion Percentage',VALUE_OPTIONAL),
'mandatoryactivitiesCompletionPercentage' => new external_value(PARAM_FLOAT,'Mandatory Activity Completion Percentage',VALUE_OPTIONAL),
'timespentid' => new external_value(PARAM_TEXT,'Time Spent ID',VALUE_OPTIONAL),
'timespent' => new external_value(PARAM_TEXT,'Time Spent',VALUE_OPTIONAL),
'Overallcompletionprogress' => new external_value(PARAM_INT,'Overall Completion Progress',VALUE_OPTIONAL),
'Remainingoverallcompletionprogress' => new external_value(PARAM_INT,'Remaining Overall Completion Progress',VALUE_OPTIONAL),
'recommended_completion' => new external_value(PARAM_TEXT,'Recommended Completion Progress',VALUE_OPTIONAL),
'recommended_completion' => new external_value(PARAM_TEXT,'Recommended Completion Progress',VALUE_OPTIONAL),
'overall_completion_data' => new external_value(PARAM_TEXT,'Overall Completion Progress',VALUE_OPTIONAL),
'xp' => new external_value(PARAM_INT,'XP Points',VALUE_OPTIONAL),
'milestone' => new external_value(PARAM_TEXT,'Milestone',VALUE_OPTIONAL),
'count' => new external_value(PARAM_INT,'Count',VALUE_OPTIONAL)
));
}
}