diff options
author | Valentin Popov <info@valentineus.link> | 2017-10-26 10:07:01 +0300 |
---|---|---|
committer | Valentin Popov <info@valentineus.link> | 2017-10-26 10:07:01 +0300 |
commit | 065426b0263a842be5b6a9276ecaae88e0353c9d (patch) | |
tree | 0e0e6641ec93a3cbae6398227489fe309e7818c1 | |
parent | 3a24fc34cac9b7e6266240cf1a0f36f5d3e80ec3 (diff) | |
download | local_webhooks-065426b0263a842be5b6a9276ecaae88e0353c9d.tar.xz local_webhooks-065426b0263a842be5b6a9276ecaae88e0353c9d.zip |
Refactoring of data sending
-rw-r--r-- | classes/curl.php | 67 | ||||
-rw-r--r-- | classes/events.php | 31 |
2 files changed, 15 insertions, 83 deletions
diff --git a/classes/curl.php b/classes/curl.php deleted file mode 100644 index 4861e2e..0000000 --- a/classes/curl.php +++ /dev/null @@ -1,67 +0,0 @@ -<?php -// This file is part of Moodle - http://moodle.org/ -// -// Moodle is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// Moodle is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with Moodle. If not, see <http://www.gnu.org/licenses/>. - -/** - * Method of sending data. - * - * @package local_webhooks - * @copyright 2017 "Valentin Popov" <info@valentineus.link> - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -namespace local_webhooks; - -defined("MOODLE_INTERNAL") || die(); - -/** - * Wrapper over cURL. - * - * @copyright 2017 "Valentin Popov" <info@valentineus.link> - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ -class curl { - /** - * The class constructor. - */ - public function __construct() { - if (!function_exists("curl_init")) { - print_error("nocurl", "mnet"); - } - } - - /** - * Easy data sending. - * - * @param object $callback - * @param string $data - */ - public static function request($callback, $data) { - $ch = curl_init($callback->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/$callback->type", - "Content-Length: " . mb_strlen($data, "UTF-8") - ) - ); - - $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 index 6740490..46151e5 100644 --- a/classes/events.php +++ b/classes/events.php @@ -15,17 +15,21 @@ // along with Moodle. If not, see <http://www.gnu.org/licenses/>. /** - * The event handler. - * - * @package local_webhooks - * @copyright 2017 "Valentin Popov" <info@valentineus.link> - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +* The event handler. +* +* @package local_webhooks +* @copyright 2017 "Valentin Popov" <info@valentineus.link> +* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later +*/ namespace local_webhooks; defined("MOODLE_INTERNAL") || die(); +require_once($CFG->libdir . "/filelib.php"); + +use curl; + /** * Defines how to work with events. * @@ -96,17 +100,12 @@ class events { * @param object $callback */ private static function send($data, $callback) { + $package = json_encode($data); + $curl = new curl(); - $package = self::packup($data); - $curl::request($callback, $package); - } + $curl->setHeader(array("Content-Type: application/$callback->type")); + $curl->post($callback->url, $package); - /** - * Packs the data for transmission. - * - * @param array $data - */ - private static function packup($data) { - return json_encode($data); + return $curl->getResponse(); } }
\ No newline at end of file |