Added final improvements for external functions

Signed-off-by: Valentin Popov <info@valentineus.link>
This commit is contained in:
Valentin Popov 2019-05-12 03:34:03 +04:00
parent c42e13d182
commit 98aecd35ce
Signed by: Valentin Popov
GPG Key ID: 269A00ACA90A8EA3
2 changed files with 61 additions and 38 deletions

View File

@ -17,35 +17,58 @@
/** /**
* This file registers the plugin's external functions. * This file registers the plugin's external functions.
* *
* @copyright 2018 'Valentin Popov' <info@valentineus.link> * @copyright 2019 'Valentin Popov' <info@valentineus.link>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @package local_webhooks
*/ */
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
$functions = array( $functions = [
'local_webhooks_get_service' => array( 'local_webhooks_add_service' => [
'classname' => 'local_webhooks_external', 'classname' => 'local_webhooks_external',
'classpath' => 'local/webhooks/externallib.php', 'classpath' => 'local/webhooks/externallib.php',
'description' => 'Get information about the service.', 'description' => 'Add a new service.',
'methodname' => 'add_service',
'type' => 'write',
],
'local_webhooks_del_service' => [
'classname' => 'local_webhooks_external',
'classpath' => 'local/webhooks/externallib.php',
'description' => 'Delete the existing service.',
'methodname' => 'del_service',
'type' => 'write',
],
'local_webhooks_get_events' => [
'classname' => 'local_webhooks_external',
'classpath' => 'local/webhooks/externallib.php',
'description' => 'Get the event\'s list.',
'methodname' => 'get_events',
'type' => 'read',
],
'local_webhooks_get_service' => [
'classname' => 'local_webhooks_external',
'classpath' => 'local/webhooks/externallib.php',
'description' => 'Get data by service.',
'methodname' => 'get_service', 'methodname' => 'get_service',
'type' => 'read', 'type' => 'read',
), ],
'local_webhooks_get_services' => array( 'local_webhooks_get_services' => [
'classname' => 'local_webhooks_external', 'classname' => 'local_webhooks_external',
'classpath' => 'local/webhooks/externallib.php', 'classpath' => 'local/webhooks/externallib.php',
'description' => 'Get a list of services.', 'description' => 'Get the service\'s list.',
'methodname' => 'get_services', 'methodname' => 'get_services',
'type' => 'read', 'type' => 'read',
), ],
'local_webhooks_get_services_by_event' => array( 'local_webhooks_set_service' => [
'classname' => 'local_webhooks_external', 'classname' => 'local_webhooks_external',
'classpath' => 'local/webhooks/externallib.php', 'classpath' => 'local/webhooks/externallib.php',
'description' => 'Get the list of services subscribed to the event.', 'description' => 'Update the existing service.',
'methodname' => 'get_services_by_event', 'methodname' => 'set_service',
'type' => 'read', 'type' => 'write',
), ],
); ];

View File

@ -73,8 +73,8 @@ final class local_webhooks_external extends external_api {
'point' => new external_value(PARAM_URL, 'The service\'s endpoint.'), 'point' => new external_value(PARAM_URL, 'The service\'s endpoint.'),
'status' => new external_value(PARAM_BOOL, 'The service\'s status.', false, true), 'status' => new external_value(PARAM_BOOL, 'The service\'s status.', false, true),
'token' => new external_value(PARAM_RAW, 'The service\'s secret key.'), 'token' => new external_value(PARAM_RAW, 'The service\'s secret key.'),
], ''), ], 'The new service\'s data.'),
], ''); ]);
} }
/** /**
@ -116,7 +116,7 @@ final class local_webhooks_external extends external_api {
public static function del_service_parameters(): external_function_parameters { public static function del_service_parameters(): external_function_parameters {
return new external_function_parameters([ return new external_function_parameters([
'serviceid' => new external_value(PARAM_INT, 'The service\'s ID.'), 'serviceid' => new external_value(PARAM_INT, 'The service\'s ID.'),
], ''); ]);
} }
/** /**
@ -151,7 +151,7 @@ final class local_webhooks_external extends external_api {
* @return \external_function_parameters * @return \external_function_parameters
*/ */
public static function get_events_parameters(): external_function_parameters { public static function get_events_parameters(): external_function_parameters {
return new external_function_parameters([], ''); return new external_function_parameters([]);
} }
/** /**
@ -162,14 +162,14 @@ final class local_webhooks_external extends external_api {
public static function get_events_returns(): external_multiple_structure { public static function get_events_returns(): external_multiple_structure {
return new external_multiple_structure( return new external_multiple_structure(
new external_single_structure([ new external_single_structure([
'action' => new external_value(PARAM_ALPHANUMEXT, ''), 'action' => new external_value(PARAM_ALPHANUMEXT, 'The action name.'),
'component' => new external_value(PARAM_COMPONENT, ''), 'component' => new external_value(PARAM_COMPONENT, 'The component name.'),
'crud' => new external_value(PARAM_ALPHA, ''), 'crud' => new external_value(PARAM_ALPHA, 'The transaction type.'),
'edulevel' => new external_value(PARAM_INT, ''), 'edulevel' => new external_value(PARAM_INT, 'The level of educational value.'),
'eventname' => new external_value(PARAM_RAW, ''), 'eventname' => new external_value(PARAM_RAW, 'The event name.'),
'objecttable' => new external_value(PARAM_RAW, ''), 'objecttable' => new external_value(PARAM_RAW, 'The database table name.'),
'target' => new external_value(PARAM_RAW, ''), 'target' => new external_value(PARAM_RAW, 'The target on which the action.'),
], ''), '' ], 'The event\'s data.'), 'The event\'s list.'
); );
} }
@ -203,7 +203,7 @@ final class local_webhooks_external extends external_api {
public static function get_service_parameters(): external_function_parameters { public static function get_service_parameters(): external_function_parameters {
return new external_function_parameters([ return new external_function_parameters([
'serviceid' => new external_value(PARAM_INT, 'The service\'s ID.'), 'serviceid' => new external_value(PARAM_INT, 'The service\'s ID.'),
], ''); ]);
} }
/** /**
@ -222,7 +222,7 @@ final class local_webhooks_external extends external_api {
'point' => new external_value(PARAM_URL, 'The service\'s endpoint.'), 'point' => new external_value(PARAM_URL, 'The service\'s endpoint.'),
'status' => new external_value(PARAM_BOOL, 'The service\'s status.'), 'status' => new external_value(PARAM_BOOL, 'The service\'s status.'),
'token' => new external_value(PARAM_RAW, 'The service\'s secret key.'), 'token' => new external_value(PARAM_RAW, 'The service\'s secret key.'),
], ''); ], 'The service\'s data.');
} }
/** /**
@ -271,11 +271,11 @@ final class local_webhooks_external extends external_api {
'point' => new external_value(PARAM_URL, 'The service\'s endpoint.', false), 'point' => new external_value(PARAM_URL, 'The service\'s endpoint.', false),
'status' => new external_value(PARAM_BOOL, 'The service\'s status.', false), 'status' => new external_value(PARAM_BOOL, 'The service\'s status.', false),
'token' => new external_value(PARAM_RAW, 'The service\'s secret key.', false), 'token' => new external_value(PARAM_RAW, 'The service\'s secret key.', false),
], '', false), ], 'SQL conditions.', false),
'sort' => new external_value(PARAM_RAW, '', false), 'sort' => new external_value(PARAM_RAW, 'SQL sort parameters.', false),
'from' => new external_value(PARAM_INT, '', false), 'from' => new external_value(PARAM_INT, 'The start index.', false),
'limit' => new external_value(PARAM_INT, '', false), 'limit' => new external_value(PARAM_INT, 'The count elements.', false),
], ''); ]);
} }
/** /**
@ -295,7 +295,7 @@ final class local_webhooks_external extends external_api {
'point' => new external_value(PARAM_URL, 'The service\'s endpoint.'), 'point' => new external_value(PARAM_URL, 'The service\'s endpoint.'),
'status' => new external_value(PARAM_BOOL, 'The service\'s status.'), 'status' => new external_value(PARAM_BOOL, 'The service\'s status.'),
'token' => new external_value(PARAM_RAW, 'The service\'s secret key.'), 'token' => new external_value(PARAM_RAW, 'The service\'s secret key.'),
], ''), '' ], 'The service\'s data.'), 'The service\'s list.'
); );
} }
@ -351,8 +351,8 @@ final class local_webhooks_external extends external_api {
'point' => new external_value(PARAM_URL, 'The service\'s endpoint.', false), 'point' => new external_value(PARAM_URL, 'The service\'s endpoint.', false),
'status' => new external_value(PARAM_BOOL, 'The service\'s status.', false), 'status' => new external_value(PARAM_BOOL, 'The service\'s status.', false),
'token' => new external_value(PARAM_RAW, 'The service\'s secret key.', false), 'token' => new external_value(PARAM_RAW, 'The service\'s secret key.', false),
], ''), ], 'The new service\'s data.'),
], ''); ]);
} }
/** /**
@ -361,6 +361,6 @@ final class local_webhooks_external extends external_api {
* @return \external_value * @return \external_value
*/ */
public static function set_service_returns(): external_value { public static function set_service_returns(): external_value {
return new external_value(PARAM_BOOL, ''); return new external_value(PARAM_BOOL, 'The result operation.');
} }
} }