Merge branch 'MDL-65017-master' of git://github.com/jleyva/moodle
[moodle.git] / mod / forum / db / services.php
1 <?php
3 // This file is part of Moodle - http://moodle.org/
4 //
5 // Moodle is free software: you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation, either version 3 of the License, or
8 // (at your option) any later version.
9 //
10 // Moodle is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 // GNU General Public License for more details.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
18 /**
19  * Forum external functions and service definitions.
20  *
21  * @package    mod_forum
22  * @copyright  2012 Mark Nelson <markn@moodle.com>
23  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
24  */
26 $functions = array(
28     'mod_forum_get_forums_by_courses' => array(
29         'classname' => 'mod_forum_external',
30         'methodname' => 'get_forums_by_courses',
31         'classpath' => 'mod/forum/externallib.php',
32         'description' => 'Returns a list of forum instances in a provided set of courses, if
33             no courses are provided then all the forum instances the user has access to will be
34             returned.',
35         'type' => 'read',
36         'capabilities' => 'mod/forum:viewdiscussion',
37         'services' => array(MOODLE_OFFICIAL_MOBILE_SERVICE)
38     ),
40     'mod_forum_get_discussion_posts' => array(
41         'classname' => 'mod_forum_external',
42         'methodname' => 'get_discussion_posts',
43         'classpath' => 'mod/forum/externallib.php',
44         'description' => 'Returns a list of forum posts for a discussion.',
45         'type' => 'read',
46         'capabilities' => 'mod/forum:viewdiscussion, mod/forum:viewqandawithoutposting',
47         'services' => array(MOODLE_OFFICIAL_MOBILE_SERVICE)
48     ),
50     'mod_forum_get_forum_discussion_posts' => array(
51         'classname' => 'mod_forum_external',
52         'methodname' => 'get_forum_discussion_posts',
53         'classpath' => 'mod/forum/externallib.php',
54         'description' => 'Returns a list of forum posts for a discussion.',
55         'type' => 'read',
56         'capabilities' => 'mod/forum:viewdiscussion, mod/forum:viewqandawithoutposting',
57         'services' => array(MOODLE_OFFICIAL_MOBILE_SERVICE)
58     ),
60     'mod_forum_get_forum_discussions_paginated' => array(
61         'classname' => 'mod_forum_external',
62         'methodname' => 'get_forum_discussions_paginated',
63         'classpath' => 'mod/forum/externallib.php',
64         'description' => '** DEPRECATED ** Please do not call this function any more.
65                           Returns a list of forum discussions optionally sorted and paginated.',
66         'type' => 'read',
67         'capabilities' => 'mod/forum:viewdiscussion, mod/forum:viewqandawithoutposting',
68         'services' => array(MOODLE_OFFICIAL_MOBILE_SERVICE)
69     ),
71     'mod_forum_get_forum_discussions' => array(
72         'classname' => 'mod_forum_external',
73         'methodname' => 'get_forum_discussions',
74         'classpath' => 'mod/forum/externallib.php',
75         'description' => 'Returns a list of forum discussions optionally sorted and paginated.',
76         'type' => 'read',
77         'capabilities' => 'mod/forum:viewdiscussion, mod/forum:viewqandawithoutposting',
78         'services' => array(MOODLE_OFFICIAL_MOBILE_SERVICE)
79     ),
81     'mod_forum_view_forum' => array(
82         'classname' => 'mod_forum_external',
83         'methodname' => 'view_forum',
84         'classpath' => 'mod/forum/externallib.php',
85         'description' => 'Trigger the course module viewed event and update the module completion status.',
86         'type' => 'write',
87         'capabilities' => 'mod/forum:viewdiscussion',
88         'services' => array(MOODLE_OFFICIAL_MOBILE_SERVICE)
89     ),
91     'mod_forum_view_forum_discussion' => array(
92         'classname' => 'mod_forum_external',
93         'methodname' => 'view_forum_discussion',
94         'classpath' => 'mod/forum/externallib.php',
95         'description' => 'Trigger the forum discussion viewed event.',
96         'type' => 'write',
97         'capabilities' => 'mod/forum:viewdiscussion',
98         'services' => array(MOODLE_OFFICIAL_MOBILE_SERVICE)
99     ),
101     'mod_forum_add_discussion_post' => array(
102         'classname' => 'mod_forum_external',
103         'methodname' => 'add_discussion_post',
104         'classpath' => 'mod/forum/externallib.php',
105         'description' => 'Create new posts into an existing discussion.',
106         'type' => 'write',
107         'ajax' => true,
108         'capabilities' => 'mod/forum:replypost',
109         'services' => array(MOODLE_OFFICIAL_MOBILE_SERVICE)
110     ),
112     'mod_forum_add_discussion' => array(
113         'classname' => 'mod_forum_external',
114         'methodname' => 'add_discussion',
115         'classpath' => 'mod/forum/externallib.php',
116         'description' => 'Add a new discussion into an existing forum.',
117         'type' => 'write',
118         'capabilities' => 'mod/forum:startdiscussion',
119         'services' => array(MOODLE_OFFICIAL_MOBILE_SERVICE)
120     ),
122     'mod_forum_can_add_discussion' => array(
123         'classname' => 'mod_forum_external',
124         'methodname' => 'can_add_discussion',
125         'classpath' => 'mod/forum/externallib.php',
126         'description' => 'Check if the current user can add discussions in the given forum (and optionally for the given group).',
127         'type' => 'read',
128         'services' => array(MOODLE_OFFICIAL_MOBILE_SERVICE)
129     ),
131     'mod_forum_get_forum_access_information' => array(
132         'classname'     => 'mod_forum_external',
133         'methodname'    => 'get_forum_access_information',
134         'description'   => 'Return capabilities information for a given forum.',
135         'type'          => 'read',
136         'services'      => array(MOODLE_OFFICIAL_MOBILE_SERVICE),
137     ),
139     'mod_forum_set_subscription_state' => array(
140         'classname' => 'mod_forum_external',
141         'methodname' => 'set_subscription_state',
142         'classpath' => 'mod/forum/externallib.php',
143         'description' => 'Set the subscription state',
144         'type' => 'write',
145         'ajax' => true,
146         'services' => array(MOODLE_OFFICIAL_MOBILE_SERVICE),
147     ),
149     'mod_forum_set_lock_state' => array(
150         'classname' => 'mod_forum_external',
151         'methodname' => 'set_lock_state',
152         'classpath' => 'mod/forum/externallib.php',
153         'description' => 'Set the lock state for the discussion',
154         'type' => 'write',
155         'ajax' => true,
156         'capabilities' => 'moodle/course:manageactivities',
157         'services' => array(MOODLE_OFFICIAL_MOBILE_SERVICE),
158     ),
160     'mod_forum_toggle_favourite_state' => array(
161         'classname' => 'mod_forum_external',
162         'methodname' => 'toggle_favourite_state',
163         'classpath' => 'mod/forum/externallib.php',
164         'description' => 'Toggle the favourite state',
165         'type' => 'write',
166         'ajax' => true,
167         'services' => array(MOODLE_OFFICIAL_MOBILE_SERVICE),
168     ),
169     'mod_forum_set_pin_state' => array(
170         'classname' => 'mod_forum_external',
171         'methodname' => 'set_pin_state',
172         'classpath' => 'mod/forum/externallib.php',
173         'description' => 'Set the pin state',
174         'type' => 'write',
175         'ajax' => true,
176         'services' => array(MOODLE_OFFICIAL_MOBILE_SERVICE),
177     ),
178     'mod_forum_delete_post' => array(
179         'classname' => 'mod_forum_external',
180         'methodname' => 'delete_post',
181         'classpath' => 'mod/forum/externallib.php',
182         'description' => 'Deletes a post or a discussion completely when the post is the discussion topic.',
183         'type' => 'write',
184         'services' => array(MOODLE_OFFICIAL_MOBILE_SERVICE),
185     ),
186 );