This commit is contained in:
+2
-67
@@ -24,18 +24,6 @@
|
||||
|
||||
namespace local_webhooks;
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
global $CFG;
|
||||
|
||||
require_once(__DIR__ . '/../lib.php');
|
||||
require_once(__DIR__ . '/../locallib.php');
|
||||
|
||||
require_once($CFG->libdir . '/filelib.php');
|
||||
|
||||
use curl;
|
||||
use local_webhooks_events;
|
||||
|
||||
/**
|
||||
* Defines how to work with events.
|
||||
*
|
||||
@@ -47,61 +35,8 @@ class handler {
|
||||
* External handler.
|
||||
*
|
||||
* @param object $event
|
||||
*
|
||||
* @throws \dml_exception
|
||||
* @throws \coding_exception
|
||||
*/
|
||||
public static function events($event) {
|
||||
$data = $event->get_data();
|
||||
|
||||
if (!empty($callbacks = local_webhooks_get_list_records())) {
|
||||
foreach ($callbacks as $callback) {
|
||||
self::handler_callback($data, $callback);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Processes each callback.
|
||||
*
|
||||
* @param array $data
|
||||
* @param object $callback
|
||||
*
|
||||
* @throws \coding_exception
|
||||
* @throws \dml_exception
|
||||
*/
|
||||
private static function handler_callback($data, $callback) {
|
||||
global $CFG;
|
||||
|
||||
if ((bool) $callback->enable && !empty($callback->events[$data['eventname']])) {
|
||||
$urlparse = parse_url($CFG->wwwroot);
|
||||
|
||||
$data['host'] = $urlparse['host'];
|
||||
$data['token'] = $callback->token;
|
||||
$data['extra'] = $callback->other;
|
||||
|
||||
self::send($data, $callback);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sending data to the node.
|
||||
*
|
||||
* @param array $data
|
||||
* @param object $callback
|
||||
*
|
||||
* @return array
|
||||
* @throws \coding_exception
|
||||
* @throws \dml_exception
|
||||
*/
|
||||
private static function send($data, $callback) {
|
||||
$curl = new curl();
|
||||
$curl->setHeader(['Content-Type: application/' . $callback->type]);
|
||||
$curl->post($callback->url, json_encode($data));
|
||||
|
||||
$response = $curl->getResponse();
|
||||
local_webhooks_events::response_answer($callback->id, $response);
|
||||
|
||||
return $response;
|
||||
public static function events($event): void {
|
||||
// Delivery remains disabled until events can be persisted before any network request.
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user