2 // This file is part of Moodle - http://moodle.org/
4 // Moodle is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
9 // Moodle is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
14 // You should have received a copy of the GNU General Public License
15 // along with Moodle. If not, see <http://www.gnu.org/licenses/>.
18 * Quiz external functions and service definitions.
22 * @copyright 2016 Juan Leyva <juan@moodle.com>
23 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
27 defined('MOODLE_INTERNAL') ||
die;
31 'mod_quiz_get_quizzes_by_courses' => [
32 'classname' => 'mod_quiz_external',
33 'methodname' => 'get_quizzes_by_courses',
34 'description' => 'Returns a list of quizzes in a provided list of courses,
35 if no list is provided all quizzes that the user can view will be returned.',
37 'capabilities' => 'mod/quiz:view',
38 'services' => [MOODLE_OFFICIAL_MOBILE_SERVICE
]
41 'mod_quiz_view_quiz' => [
42 'classname' => 'mod_quiz_external',
43 'methodname' => 'view_quiz',
44 'description' => 'Trigger the course module viewed event and update the module completion status.',
46 'capabilities' => 'mod/quiz:view',
47 'services' => [MOODLE_OFFICIAL_MOBILE_SERVICE
]
50 'mod_quiz_get_user_attempts' => [
51 'classname' => 'mod_quiz_external',
52 'methodname' => 'get_user_attempts',
53 'description' => 'Return a list of attempts for the given quiz and user.',
55 'capabilities' => 'mod/quiz:view',
56 'services' => [MOODLE_OFFICIAL_MOBILE_SERVICE
]
59 'mod_quiz_get_user_best_grade' => [
60 'classname' => 'mod_quiz_external',
61 'methodname' => 'get_user_best_grade',
62 'description' => 'Get the best current grade for the given user on a quiz.',
64 'capabilities' => 'mod/quiz:view',
65 'services' => [MOODLE_OFFICIAL_MOBILE_SERVICE
]
68 'mod_quiz_get_combined_review_options' => [
69 'classname' => 'mod_quiz_external',
70 'methodname' => 'get_combined_review_options',
71 'description' => 'Combines the review options from a number of different quiz attempts.',
73 'capabilities' => 'mod/quiz:view',
74 'services' => [MOODLE_OFFICIAL_MOBILE_SERVICE
]
77 'mod_quiz_start_attempt' => [
78 'classname' => 'mod_quiz_external',
79 'methodname' => 'start_attempt',
80 'description' => 'Starts a new attempt at a quiz.',
82 'capabilities' => 'mod/quiz:attempt',
83 'services' => [MOODLE_OFFICIAL_MOBILE_SERVICE
]
86 'mod_quiz_get_attempt_data' => [
87 'classname' => 'mod_quiz_external',
88 'methodname' => 'get_attempt_data',
89 'description' => 'Returns information for the given attempt page for a quiz attempt in progress.',
91 'capabilities' => 'mod/quiz:attempt',
92 'services' => [MOODLE_OFFICIAL_MOBILE_SERVICE
]
95 'mod_quiz_get_attempt_summary' => [
96 'classname' => 'mod_quiz_external',
97 'methodname' => 'get_attempt_summary',
98 'description' => 'Returns a summary of a quiz attempt before it is submitted.',
100 'capabilities' => 'mod/quiz:attempt',
101 'services' => [MOODLE_OFFICIAL_MOBILE_SERVICE
]
104 'mod_quiz_save_attempt' => [
105 'classname' => 'mod_quiz_external',
106 'methodname' => 'save_attempt',
107 'description' => 'Processes save requests during the quiz.
108 This function is intended for the quiz auto-save feature.',
110 'capabilities' => 'mod/quiz:attempt',
111 'services' => [MOODLE_OFFICIAL_MOBILE_SERVICE
]
114 'mod_quiz_process_attempt' => [
115 'classname' => 'mod_quiz_external',
116 'methodname' => 'process_attempt',
117 'description' => 'Process responses during an attempt at a quiz and also deals with attempts finishing.',
119 'capabilities' => 'mod/quiz:attempt',
120 'services' => [MOODLE_OFFICIAL_MOBILE_SERVICE
]
123 'mod_quiz_get_attempt_review' => [
124 'classname' => 'mod_quiz_external',
125 'methodname' => 'get_attempt_review',
126 'description' => 'Returns review information for the given finished attempt, can be used by users or teachers.',
128 'capabilities' => 'mod/quiz:reviewmyattempts',
129 'services' => [MOODLE_OFFICIAL_MOBILE_SERVICE
]
132 'mod_quiz_view_attempt' => [
133 'classname' => 'mod_quiz_external',
134 'methodname' => 'view_attempt',
135 'description' => 'Trigger the attempt viewed event.',
137 'capabilities' => 'mod/quiz:attempt',
138 'services' => [MOODLE_OFFICIAL_MOBILE_SERVICE
]
141 'mod_quiz_view_attempt_summary' => [
142 'classname' => 'mod_quiz_external',
143 'methodname' => 'view_attempt_summary',
144 'description' => 'Trigger the attempt summary viewed event.',
146 'capabilities' => 'mod/quiz:attempt',
147 'services' => [MOODLE_OFFICIAL_MOBILE_SERVICE
]
150 'mod_quiz_view_attempt_review' => [
151 'classname' => 'mod_quiz_external',
152 'methodname' => 'view_attempt_review',
153 'description' => 'Trigger the attempt reviewed event.',
155 'capabilities' => 'mod/quiz:reviewmyattempts',
156 'services' => [MOODLE_OFFICIAL_MOBILE_SERVICE
]
159 'mod_quiz_get_quiz_feedback_for_grade' => [
160 'classname' => 'mod_quiz_external',
161 'methodname' => 'get_quiz_feedback_for_grade',
162 'description' => 'Get the feedback text that should be show to a student who got the given grade in the given quiz.',
164 'capabilities' => 'mod/quiz:view',
165 'services' => [MOODLE_OFFICIAL_MOBILE_SERVICE
]
168 'mod_quiz_get_quiz_access_information' => [
169 'classname' => 'mod_quiz_external',
170 'methodname' => 'get_quiz_access_information',
171 'description' => 'Return access information for a given quiz.',
173 'capabilities' => 'mod/quiz:view',
174 'services' => [MOODLE_OFFICIAL_MOBILE_SERVICE
]
177 'mod_quiz_get_attempt_access_information' => [
178 'classname' => 'mod_quiz_external',
179 'methodname' => 'get_attempt_access_information',
180 'description' => 'Return access information for a given attempt in a quiz.',
182 'capabilities' => 'mod/quiz:view',
183 'services' => [MOODLE_OFFICIAL_MOBILE_SERVICE
]
186 'mod_quiz_get_quiz_required_qtypes' => [
187 'classname' => 'mod_quiz_external',
188 'methodname' => 'get_quiz_required_qtypes',
189 'description' => 'Return the potential question types that would be required for a given quiz.',
191 'capabilities' => 'mod/quiz:view',
192 'services' => [MOODLE_OFFICIAL_MOBILE_SERVICE
]
195 'mod_quiz_set_question_version' => [
196 'classname' => 'mod_quiz\external\submit_question_version',
197 'description' => 'Set the version of question that would be required for a given quiz.',
199 'capabilities' => 'mod/quiz:view',
203 'mod_quiz_reopen_attempt' => [
204 'classname' => 'mod_quiz\external\reopen_attempt',
205 'description' => 'Re-open an attempt that is currently in the never submitted state.',
207 'capabilities' => 'mod/quiz:reopenattempts',
211 'mod_quiz_get_reopen_attempt_confirmation' => [
212 'classname' => 'mod_quiz\external\get_reopen_attempt_confirmation',
213 'description' => 'Verify it is OK to re-open a given quiz attempt, and if so, return a suitable confirmation message.',
215 'capabilities' => 'mod/quiz:reopenattempts',
219 'mod_quiz_add_random_questions' => [
220 'classname' => 'mod_quiz\external\add_random_questions',
221 'description' => 'Add a number of random questions to a quiz.',
223 'capabilities' => 'mod/quiz:manage',
227 'mod_quiz_update_filter_condition' => [
228 'classname' => 'mod_quiz\external\update_filter_condition',
229 'description' => 'Update filter condition for a random question slot.',
231 'capabilities' => 'mod/quiz:manage',
235 'mod_quiz_save_overrides' => [
236 'classname' => 'mod_quiz\external\save_overrides',
237 'description' => 'Update or insert quiz overrides',
239 'capabilities' => 'mod/quiz:manageoverrides',
243 'mod_quiz_delete_overrides' => [
244 'classname' => 'mod_quiz\external\delete_overrides',
245 'description' => 'Delete quiz overrides',
247 'capabilities' => 'mod/quiz:manageoverrides',
251 'mod_quiz_get_overrides' => [
252 'classname' => 'mod_quiz\external\get_overrides',
253 'description' => 'Get quiz overrides',
255 'capabilities' => 'mod/quiz:manageoverrides',
259 'mod_quiz_update_slots' => [
260 'classname' => 'mod_quiz\external\update_slots',
261 'description' => 'Update the properties of slots in a quiz. All slots must belong to the same quiz.',
263 'capabilities' => 'mod/quiz:manage',