Added external function get the event's list

Signed-off-by: Valentin Popov <info@valentineus.link>
This commit is contained in:
Valentin Popov 2019-05-11 02:40:47 +04:00
parent 747055f9d1
commit 3a865453a4
Signed by: Valentin Popov
GPG Key ID: 269A00ACA90A8EA3
2 changed files with 74 additions and 1 deletions

View File

@ -130,6 +130,51 @@ final class local_webhooks_external extends external_api {
return new external_value(PARAM_BOOL, 'The result operation.');
}
/**
* Get the event's list.
*
* @return array
*
* @throws \ReflectionException
* @throws \dml_exception
* @throws \invalid_parameter_exception
* @throws \restricted_context_exception
*/
public static function get_events(): array {
$context = context_system::instance();
self::validate_context($context);
return api::get_events();
}
/**
* Returns description of the method parameters.
*
* @return \external_function_parameters
*/
public static function get_events_parameters(): external_function_parameters {
return new external_function_parameters([], '');
}
/**
* Returns description of the method result value.
*
* @return \external_multiple_structure
*/
public static function get_events_returns(): external_multiple_structure {
return new external_multiple_structure(
new external_single_structure([
'action' => new external_value(PARAM_ALPHANUMEXT, ''),
'component' => new external_value(PARAM_COMPONENT, ''),
'crud' => new external_value(PARAM_ALPHA, ''),
'edulevel' => new external_value(PARAM_INT, ''),
'eventname' => new external_value(PARAM_RAW, ''),
'objecttable' => new external_value(PARAM_RAW, ''),
'target' => new external_value(PARAM_RAW, ''),
], ''), ''
);
}
/**
* Get data by service.
*
@ -252,7 +297,7 @@ final class local_webhooks_external extends external_api {
'point' => new external_value(PARAM_URL, 'The service\'s endpoint.'),
'status' => new external_value(PARAM_BOOL, 'The service\'s status.'),
'token' => new external_value(PARAM_RAW, 'The service\'s secret key.'),
], '')
], ''), ''
);
}
}

View File

@ -141,6 +141,34 @@ final class local_webhooks_external_testcase extends externallib_advanced_testca
self::assertInternalType('bool', $return);
}
/**
* Testing external function get the event's list.
*
* @throws \ReflectionException
* @throws \dml_exception
* @throws \invalid_parameter_exception
* @throws \invalid_response_exception
* @throws \restricted_context_exception
*/
public function test_get_events() {
$this->resetAfterTest();
self::setAdminUser();
$return = local_webhooks_external::get_events();
$return = external_api::clean_returnvalue(local_webhooks_external::get_events_returns(), $return);
self::assertInternalType('array', $return);
self::assertCount(count(api::get_events()), $return);
foreach ($return as $item) {
self::assertInternalType('array', $item);
self::assertEquals([
'action', 'component', 'crud', 'edulevel', 'eventname', 'objecttable', 'target',
], array_keys($item));
}
}
/**
* Testing external get record's data.
*