From 9c5c778c525a69ed0ad0f0679c00860d8737ce15 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Thu, 19 Oct 2017 07:04:14 +0400 Subject: Initial commit --- classes/curl.php | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ classes/events.php | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 classes/curl.php create mode 100644 classes/events.php (limited to 'classes') diff --git a/classes/curl.php b/classes/curl.php new file mode 100644 index 0000000..7f44b38 --- /dev/null +++ b/classes/curl.php @@ -0,0 +1,50 @@ +. + +/** + * Create a class for sending data. + * + * @package local_webhooks + * @copyright 2017 "Valentin Popov" + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +namespace local_webhooks; + +defined('MOODLE_INTERNAL') || die(); + +class curl { + public function __construct() { + if (!function_exists('curl_init')) { + print_error('nocurl', 'mnet'); + } + } + + public static function request($url, $data) { + $ch = curl_init($url); + curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); + curl_setopt($ch, CURLOPT_POSTFIELDS, $data); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_HTTPHEADER, array( + 'Content-Type: application/json', + 'Content-Length: ' . strlen($data)) + ); + + $result = curl_exec($ch); + curl_close($ch); + return $result; + } +} \ No newline at end of file diff --git a/classes/events.php b/classes/events.php new file mode 100644 index 0000000..bf77d4d --- /dev/null +++ b/classes/events.php @@ -0,0 +1,42 @@ +. + +/** + * The event handler. + * + * @package local_webhooks + * @copyright 2017 "Valentin Popov" + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +namespace local_webhooks; + +defined('MOODLE_INTERNAL') || die(); + +class events { + public static function handler($event) { + $enabled = boolval(get_config('local_webhooks', 'enabled')); + $url = get_config('local_webhooks', 'url'); + + if ($enabled && !empty($url)) { + $data = $event->get_data(); + $json = json_encode($data); + + $curl = new curl(); + $curl::request($url, $json); + } + } +} \ No newline at end of file -- cgit v1.2.3