diff options
author | Valentin Popov <info@valentineus.link> | 2017-12-27 19:45:31 +0300 |
---|---|---|
committer | Valentin Popov <info@valentineus.link> | 2017-12-27 19:45:31 +0300 |
commit | 0041667754825dca690169bdc8db92a2ed7b4b4e (patch) | |
tree | 52380eec73a471a5b4d95d55326a8d6ef94abfab /classes/handler.php | |
parent | 91bf79f0307b65d5c505d86b731be248fc093790 (diff) | |
download | local_webhooks-0041667754825dca690169bdc8db92a2ed7b4b4e.tar.xz local_webhooks-0041667754825dca690169bdc8db92a2ed7b4b4e.zip |
Refactoring the handler class
Diffstat (limited to 'classes/handler.php')
-rw-r--r-- | classes/handler.php | 47 |
1 files changed, 4 insertions, 43 deletions
diff --git a/classes/handler.php b/classes/handler.php index 8de9b3c..3349f9f 100644 --- a/classes/handler.php +++ b/classes/handler.php @@ -27,12 +27,9 @@ namespace local_webhooks; defined("MOODLE_INTERNAL") || die(); require_once(__DIR__ . "/../lib.php"); -require_once(__DIR__ . "/../locallib.php"); - -require_once($CFG->libdir . "/filelib.php"); /** - * Defines how to work with events. + * Defines event handlers. * * @copyright 2017 "Valentin Popov" <info@valentineus.link> * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later @@ -48,46 +45,10 @@ class handler { if ($callbacks = local_webhooks_get_list_records()) { foreach ($callbacks as $callback) { - self::handler_callback($data, $callback); + if (boolval($callback->enable) && !empty($callback->events[$data["eventname"]])) { + local_webhooks_send_request($data, $callback); + } } } } - - /** - * Processes each callback. - * - * @param array $data - * @param object $callback - */ - private static function handler_callback($data, $callback) { - global $CFG; - - if (boolval($callback->enable)) { - if (!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 - */ - private static function send($data, $callback) { - $curl = new \curl(); - $curl->setHeader(array("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; - } }
\ No newline at end of file |