aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValentin Popov <info@valentineus.link>2017-12-27 19:45:31 +0300
committerValentin Popov <info@valentineus.link>2017-12-27 19:45:31 +0300
commit0041667754825dca690169bdc8db92a2ed7b4b4e (patch)
tree52380eec73a471a5b4d95d55326a8d6ef94abfab
parent91bf79f0307b65d5c505d86b731be248fc093790 (diff)
downloadlocal_webhooks-0041667754825dca690169bdc8db92a2ed7b4b4e.tar.xz
local_webhooks-0041667754825dca690169bdc8db92a2ed7b4b4e.zip
Refactoring the handler class
-rw-r--r--classes/handler.php47
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