d031e92f50144a233a64eb89b2af5c43d8d260c1
[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' => 'Returns a list of forum discussions optionally sorted and paginated.',
65         'type' => 'read',
66         'capabilities' => 'mod/forum:viewdiscussion, mod/forum:viewqandawithoutposting',
67         'services' => array(MOODLE_OFFICIAL_MOBILE_SERVICE)
68     ),
70     'mod_forum_view_forum' => array(
71         'classname' => 'mod_forum_external',
72         'methodname' => 'view_forum',
73         'classpath' => 'mod/forum/externallib.php',
74         'description' => 'Trigger the course module viewed event and update the module completion status.',
75         'type' => 'write',
76         'capabilities' => 'mod/forum:viewdiscussion',
77         'services' => array(MOODLE_OFFICIAL_MOBILE_SERVICE)
78     ),
80     'mod_forum_view_forum_discussion' => array(
81         'classname' => 'mod_forum_external',
82         'methodname' => 'view_forum_discussion',
83         'classpath' => 'mod/forum/externallib.php',
84         'description' => 'Trigger the forum discussion viewed event.',
85         'type' => 'write',
86         'capabilities' => 'mod/forum:viewdiscussion',
87         'services' => array(MOODLE_OFFICIAL_MOBILE_SERVICE)
88     ),
90     'mod_forum_add_discussion_post' => array(
91         'classname' => 'mod_forum_external',
92         'methodname' => 'add_discussion_post',
93         'classpath' => 'mod/forum/externallib.php',
94         'description' => 'Create new posts into an existing discussion.',
95         'type' => 'write',
96         'ajax' => true,
97         'capabilities' => 'mod/forum:replypost',
98         'services' => array(MOODLE_OFFICIAL_MOBILE_SERVICE)
99     ),
101     'mod_forum_add_discussion' => array(
102         'classname' => 'mod_forum_external',
103         'methodname' => 'add_discussion',
104         'classpath' => 'mod/forum/externallib.php',
105         'description' => 'Add a new discussion into an existing forum.',
106         'type' => 'write',
107         'capabilities' => 'mod/forum:startdiscussion',
108         'services' => array(MOODLE_OFFICIAL_MOBILE_SERVICE)
109     ),
111     'mod_forum_can_add_discussion' => array(
112         'classname' => 'mod_forum_external',
113         'methodname' => 'can_add_discussion',
114         'classpath' => 'mod/forum/externallib.php',
115         'description' => 'Check if the current user can add discussions in the given forum (and optionally for the given group).',
116         'type' => 'read',
117         'services' => array(MOODLE_OFFICIAL_MOBILE_SERVICE)
118     ),
120     'mod_forum_get_forum_access_information' => array(
121         'classname'     => 'mod_forum_external',
122         'methodname'    => 'get_forum_access_information',
123         'description'   => 'Return capabilities information for a given forum.',
124         'type'          => 'read',
125         'services'      => array(MOODLE_OFFICIAL_MOBILE_SERVICE),
126     ),
128     'mod_forum_set_subscription_state' => array(
129         'classname' => 'mod_forum_external',
130         'methodname' => 'set_subscription_state',
131         'classpath' => 'mod/forum/externallib.php',
132         'description' => 'Set the subscription state',
133         'type' => 'write',
134         'ajax' => true,
135         'services' => array(MOODLE_OFFICIAL_MOBILE_SERVICE),
136     ),
138     'mod_forum_set_lock_state' => array(
139         'classname' => 'mod_forum_external',
140         'methodname' => 'set_lock_state',
141         'classpath' => 'mod/forum/externallib.php',
142         'description' => 'Set the lock state for the discussion',
143         'type' => 'write',
144         'ajax' => true,
145         'services' => array(MOODLE_OFFICIAL_MOBILE_SERVICE),
146     ),
147 );