MDL-74610 quiz: web service to update grade item for a slot
[moodle.git] / mod / quiz / db / services.php
blob00a2997df1cdd3bc94d03b2077a6da01f899784b
1 <?php
2 // This file is part of Moodle - http://moodle.org/
3 //
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.
8 //
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/>.
17 /**
18 * Quiz external functions and service definitions.
20 * @package mod_quiz
21 * @category external
22 * @copyright 2016 Juan Leyva <juan@moodle.com>
23 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
24 * @since Moodle 3.1
27 defined('MOODLE_INTERNAL') || die;
29 $functions = [
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.',
36 'type' => 'read',
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.',
45 'type' => 'write',
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.',
54 'type' => 'read',
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.',
63 'type' => 'read',
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.',
72 'type' => 'read',
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.',
81 'type' => 'write',
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.',
90 'type' => 'read',
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.',
99 'type' => 'read',
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.',
109 'type' => 'write',
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.',
118 'type' => 'write',
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.',
127 'type' => 'read',
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.',
136 'type' => 'write',
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.',
145 'type' => 'write',
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.',
154 'type' => 'write',
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.',
163 'type' => 'read',
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.',
172 'type' => 'read',
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.',
181 'type' => 'read',
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.',
190 'type' => 'read',
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.',
198 'type' => 'write',
199 'capabilities' => 'mod/quiz:view',
200 'ajax' => true,
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.',
206 'type' => 'write',
207 'capabilities' => 'mod/quiz:reopenattempts',
208 'ajax' => true,
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.',
214 'type' => 'read',
215 'capabilities' => 'mod/quiz:reopenattempts',
216 'ajax' => true,
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.',
222 'type' => 'write',
223 'capabilities' => 'mod/quiz:manage',
224 'ajax' => true,
227 'mod_quiz_update_filter_condition' => [
228 'classname' => 'mod_quiz\external\update_filter_condition',
229 'description' => 'Update filter condition for a random question slot.',
230 'type' => 'write',
231 'capabilities' => 'mod/quiz:manage',
232 'ajax' => true,
235 'mod_quiz_save_overrides' => [
236 'classname' => 'mod_quiz\external\save_overrides',
237 'description' => 'Update or insert quiz overrides',
238 'type' => 'write',
239 'capabilities' => 'mod/quiz:manageoverrides',
240 'ajax' => true,
243 'mod_quiz_delete_overrides' => [
244 'classname' => 'mod_quiz\external\delete_overrides',
245 'description' => 'Delete quiz overrides',
246 'type' => 'write',
247 'capabilities' => 'mod/quiz:manageoverrides',
248 'ajax' => true,
251 'mod_quiz_get_overrides' => [
252 'classname' => 'mod_quiz\external\get_overrides',
253 'description' => 'Get quiz overrides',
254 'type' => 'read',
255 'capabilities' => 'mod/quiz:manageoverrides',
256 'ajax' => true,
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.',
262 'type' => 'write',
263 'capabilities' => 'mod/quiz:manage',
264 'ajax' => true,