You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							124 lines
						
					
					
						
							6.7 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							124 lines
						
					
					
						
							6.7 KiB
						
					
					
				| <?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/>. | |
| /** | |
|  * | |
|  * @package    local_attendance | |
|  * @copyright  2015 Caio Bressan Doneda | |
|  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later | |
|  */ | |
| 
 | |
| defined('MOODLE_INTERNAL') || die; | |
| 
 | |
| require_once("$CFG->libdir/externallib.php"); | |
| require_once(dirname(__FILE__).'/classes/attendance_webservices_handler.php'); | |
| 
 | |
| class mod_wsattendance_external extends external_api { | |
| 
 | |
|     public static function get_courses_with_today_sessions_parameters() { | |
|         return new external_function_parameters ( | |
|                     array('userid' => new external_value(PARAM_INT, 'User id.',  VALUE_DEFAULT, 0))); | |
|     } | |
| 
 | |
|     public static function get_courses_with_today_sessions($userid) { | |
|         return attendance_handler::get_courses_with_today_sessions($userid); | |
|     } | |
| 
 | |
|     private static function get_session_structure() { | |
|         $session = array('id' => new external_value(PARAM_INT, 'Session id.'), | |
|                          'attendanceid' => new external_value(PARAM_INT, 'Attendance id.'), | |
|                          'groupid' => new external_value(PARAM_INT, 'Group id.'), | |
|                          'sessdate' => new external_value(PARAM_INT, 'Session date.'), | |
|                          'duration' => new external_value(PARAM_INT, 'Session duration.'), | |
|                          'lasttaken' => new external_value(PARAM_INT, 'Session last taken time.'), | |
|                          'lasttakenby' => new external_value(PARAM_INT, 'ID of the last user that took this session.'), | |
|                          'timemodified' => new external_value(PARAM_INT, 'Time modified.'), | |
|                          'description' => new external_value(PARAM_TEXT, 'Session description.'), | |
|                          'descriptionformat' => new external_value(PARAM_INT, 'Session description format.'), | |
|                          'studentscanmark' => new external_value(PARAM_INT, 'Students can mark their own presence.'), | |
|                          'statusset' => new external_value(PARAM_INT, 'Session statusset.')); | |
| 
 | |
|         return $session; | |
|     } | |
| 
 | |
|     public static function get_courses_with_today_sessions_returns() { | |
|         $todaysessions = self::get_session_structure(); | |
| 
 | |
|         $attendanceinstances = array('name' => new external_value(PARAM_TEXT, 'Attendance name.'), | |
|                                       'today_sessions' => new external_multiple_structure( | |
|                                                           new external_single_structure($todaysessions))); | |
| 
 | |
|         $courses = array('shortname' => new external_value(PARAM_TEXT, 'short name of a moodle course.'), | |
|                          'fullname' => new external_value(PARAM_TEXT, 'full name of a moodle course.'), | |
|                          'attendance_instances' => new external_multiple_structure( | |
|                                                    new external_single_structure($attendanceinstances))); | |
| 
 | |
|         return new external_multiple_structure(new external_single_structure(($courses))); | |
|     } | |
| 
 | |
|     public static function get_session_parameters() { | |
|         return new external_function_parameters ( | |
|                     array('sessionid' => new external_value(PARAM_INT, 'session id'))); | |
|     } | |
| 
 | |
|     public static function get_session($sessionid) { | |
|         return attendance_handler::get_session($sessionid); | |
|     } | |
| 
 | |
|     public static function get_session_returns() { | |
|         $statuses = array('id' => new external_value(PARAM_INT, 'Status id.'), | |
|                           'attendanceid' => new external_value(PARAM_INT, 'Attendance id.'), | |
|                           'acronym' => new external_value(PARAM_TEXT, 'Status acronym.'), | |
|                           'description' => new external_value(PARAM_TEXT, 'Status description.'), | |
|                           'grade' => new external_value(PARAM_FLOAT, 'Status grade.'), | |
|                           'visible' => new external_value(PARAM_INT, 'Status visibility.'), | |
|                           'deleted' => new external_value(PARAM_INT, 'informs if this session was deleted.'), | |
|                           'setnumber' => new external_value(PARAM_INT, 'Set number.')); | |
| 
 | |
|         $users = array('id' => new external_value(PARAM_INT, 'User id.'), | |
|                        'firstname' => new external_value(PARAM_TEXT, 'User first name.'), | |
|                        'lastname' => new external_value(PARAM_TEXT, 'User last name.')); | |
| 
 | |
|         $attendancelog = array('studentid' => new external_value(PARAM_INT, 'Student id.'), | |
|                                 'statusid' => new external_value(PARAM_TEXT, 'Status id (last time).'), | |
|                                 'remarks' => new external_value(PARAM_TEXT, 'Last remark.'), | |
|                                 'id' => new external_value(PARAM_TEXT, 'log id.')); | |
| 
 | |
|         $session = self::get_session_structure(); | |
|         $session['courseid'] = new external_value(PARAM_INT, 'Course moodle id.'); | |
|         $session['statuses'] = new external_multiple_structure(new external_single_structure($statuses)); | |
|         $session['attendance_log'] = new external_multiple_structure(new external_single_structure($attendancelog)); | |
|         $session['users'] = new external_multiple_structure(new external_single_structure($users)); | |
| 
 | |
|         return new external_single_structure($session); | |
|     } | |
| 
 | |
|     public static function update_user_status_parameters() { | |
|         return new external_function_parameters( | |
|                     array('sessionid' => new external_value(PARAM_INT, 'Session id'), | |
|                           'studentid' => new external_value(PARAM_INT, 'Student id'), | |
|                           'takenbyid' => new external_value(PARAM_INT, 'Id of the user who took this session'), | |
|                           'statusid' => new external_value(PARAM_INT, 'Status id'), | |
|                           'statusset' => new external_value(PARAM_TEXT, 'Status set of session'))); | |
|     } | |
| 
 | |
|     public static function update_user_status($sessionid, $studentid, $takenbyid, $statusid, $statusset) { | |
|         return attendance_handler::update_user_status($sessionid, $studentid, $takenbyid, $statusid, $statusset); | |
|     } | |
| 
 | |
|     public static function update_user_status_returns() { | |
|         return new external_value(PARAM_TEXT, 'Http code'); | |
|     } | |
| }
 | |
| 
 |