WS template customization

Re: WS template customization

by Ibra Melhem -
Number of replies: 0

and i used following code for externallib.php

 

<?php

// 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/>;.

/**
* External Early Progress Warning System Web Service
*
* @package localepwsws
* @copyright 2012 Moodle Pty Ltd (http://moodle.com)
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
require_once($CFG->libdir . "/externallib.php");

class local_ibraws_external extends external_api {

/**
* Returns description of method parameters
* @return external_function_parameters
*/


//Get User Information By ID GET_USER >> parameters >> userid//
public static function get_user_parameters() {
return new external_function_parameters(
array('userid' => new external_value(PARAM_INT, 'The user id for extracting user informations', VALUE_DEFAULT, 1))
);
}


public static function get_user($userid ) {
global $USER, $DB;

//Parameter validation
//REQUIRED
$params = self::validate_parameters(self::get_user_parameters(),
array('userid' => $userid));

//Context validation
//OPTIONAL but in most web service it should present
$context = get_context_instance(CONTEXT_USER, $USER->id);
self::validate_context($context);

//Capability checking
//OPTIONAL but in most web service it should present
if (!has_capability('moodle/user:viewdetails', $context)) {
throw new moodle_exception('cannotviewprofile');
}

$sql = "SELECT id, username, lastname, email, FROM_UNIXTIME(firstaccess) as firstaccess, FROM_UNIXTIME(lastaccess) as lastaccess, FROM_UNIXTIME(lastlogin) as lastlogin, lastip FROM mdl_user WHERE id = ".$userid;

$outputs = $DB->get_records_sql($sql);

//print_r($outputs);

foreach ($outputs as $i=>$key){
$returnArray['id'] = $key->id;
$returnArray['username'] = $key->username;
$returnArray['lastname'] = $key->lastname;
$returnArray['email'] = $key->email;
$returnArray['firstaccess'] = $key->firstaccess;
$returnArray['lastaccess'] = $key->lastaccess;
$returnArray['lastlogin'] = $key->lastlogin;
$returnArray['lastip'] = $key->lastip;
};
return $returnArray;
}

/**
* Returns description of method result value
* @return external_description
*/
public static function get_user_returns() {
return new external_single_structure(
array(
'id' => new external_value(PARAM_INT, 'user record id'),
'username' => new external_value(PARAM_TEXT, 'user name'),
'lastname' => new external_value(PARAM_TEXT, 'user last name'),
'email' => new external_value(PARAM_TEXT, 'user email'),
'firstaccess' => new external_value(PARAM_TEXT, 'user first access time'),
'lastaccess' => new external_value(PARAM_TEXT, 'user lasr access time'),
'lastlogin' => new external_value(PARAM_TEXT, 'user last login'),
'lastip' => new external_value(PARAM_TEXT, 'user last ip'),
)

);
}

//Get Course all roled in users informations >> parameters >> courseid//
public static function get_course_users_parameters() {
return new external_function_parameters(
array('courseid' => new external_value(PARAM_INT, 'The defualt returned value for course id = 1 ', VALUE_DEFAULT, 1))
);
}

/**
* Returns Course users inroled in
* @return array of Course users inroled in
*/
public static function get_course_users($courseid) {
global $USER, $DB;

//Parameter validation
//REQUIRED
$params = self::validate_parameters(self::get_course_users_parameters(),
array('courseid' => courseid));

//Context validation
//OPTIONAL but in most web service it should present
$context = get_context_instance(CONTEXT_USER, $USER->id);
self::validate_context($context);

//Capability checking
//OPTIONAL but in most web service it should present
if (!has_capability('moodle/user:viewdetails', $context)) {
throw new moodle_exception('cannotviewprofile');
}

$sql = "SELECT c.id AS courseid, c.fullname AS coursefullname, c.shortname AS courseshortname, u.id AS userid, u.username AS username, u.firstname AS userfirstname, u.lastname AS userlastname, u.email AS useremail, u.country AS usercountry, FROM_UNIXTIME( u.firstaccess ) AS userfirstaccess, FROM_UNIXTIME( u.lastaccess ) userlastaccess, FROM_UNIXTIME( u.lastlogin ) AS userlastlogin, FROM_UNIXTIME( u.currentlogin ) AS usercurrentlogin, FROM_UNIXTIME( u.timemodified ) AS usertimemodified ".
" FROM mdl_course c ".
" LEFT OUTER JOIN mdl_context cx ON c.id = cx.instanceid ".
" LEFT OUTER JOIN mdl_role_assignments ra ON cx.id = ra.contextid ".
" LEFT OUTER JOIN mdl_user u ON ra.userid = u.id ".
" WHERE cx.contextlevel = '50' ".
" AND c.id = ".$courseid." ORDER BY username ";

$outputs = $DB->get_records_sql($sql);

foreach ($outputs as $i=>$key){
$returnArray['courseid'] = $key->courseid;
$returnArray['coursefullname'] = $key->coursefullname;
$returnArray['courseshortname'] = $key->courseshortname;
$returnArray['userid'] = $key->userid;
$returnArray['username'] = $key->username;
$returnArray['userfirstname'] = $key->userfirstname;
$returnArray['userlastname'] = $key->userlastname;
$returnArray['useremail'] = $key->useremail;
$returnArray['usercountry'] = $key->usercountry;
$returnArray['userfirstaccess'] = $key->userfirstaccess;
$returnArray['userlastaccess'] = $key->userlastaccess;
$returnArray['userlastlogin'] = $key->userlastlogin;
$returnArray['usercurrentlogin'] = $key->usercurrentlogin;
$returnArray['usertimemodified'] = $key->usertimemodified;
};
return $returnArray;
}

/**
* Returns description of method result value
* @return external_description outputs returns
*/
public static function get_course_users_returns() {


return new external_single_structure(
array(
'courseid' => new external_value(PARAM_INT, 'Course id'),
'coursefullname' => new external_value(PARAM_TEXT, 'Course full name'),
'courseshortname' => new external_value(PARAM_TEXT, 'Course short name'),
'userid' => new external_value(PARAM_INT, 'User id'),
'username' => new external_value(PARAM_TEXT, 'User name'),
'userfirstname' => new external_value(PARAM_TEXT, 'User name'),
'userlastname' => new external_value(PARAM_TEXT, 'User last name'),
'useremail' => new external_value(PARAM_TEXT, 'User email'),
'usercountry' => new external_value(PARAM_TEXT, 'User country'),
'userfirstaccess' => new external_value(PARAM_TEXT, 'User first access time'),
'userlastaccess' => new external_value(PARAM_TEXT, 'User last access time'),
'userlastlogin' => new external_value(PARAM_TEXT, 'User last login time'),
'usercurrentlogin' => new external_value(PARAM_TEXT, 'User current login time'),
'usertimemodified' => new external_value(PARAM_TEXT, 'User time modified'),
)

);
}

 

}