Formatting code and eliminating possible errors
Signed-off-by: Valentin Popov <info@valentineus.link>
This commit is contained in:
		@@ -26,40 +26,50 @@ namespace local_webhooks\event;
 | 
			
		||||
 | 
			
		||||
defined('MOODLE_INTERNAL') || die();
 | 
			
		||||
 | 
			
		||||
use core\event\base;
 | 
			
		||||
use lang_string;
 | 
			
		||||
use moodle_url;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Defines how to work with events.
 | 
			
		||||
 *
 | 
			
		||||
 * @copyright 2017 "Valentin Popov" <info@valentineus.link>
 | 
			
		||||
 * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 | 
			
		||||
 */
 | 
			
		||||
class backup_performed extends \core\event\base {
 | 
			
		||||
    /**
 | 
			
		||||
     * Init method.
 | 
			
		||||
     */
 | 
			
		||||
    protected function init() {
 | 
			
		||||
        $this->data["crud"]        = "c";
 | 
			
		||||
        $this->data["edulevel"]    = self::LEVEL_OTHER;
 | 
			
		||||
        $this->data["objecttable"] = "local_webhooks_service";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
class backup_performed extends base {
 | 
			
		||||
    /**
 | 
			
		||||
     * Return localised event name.
 | 
			
		||||
     *
 | 
			
		||||
     * @throws \coding_exception
 | 
			
		||||
     */
 | 
			
		||||
    public static function get_name() {
 | 
			
		||||
        return new \lang_string("create", "moodle");
 | 
			
		||||
        return new lang_string('create', 'moodle');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Returns description of what happened.
 | 
			
		||||
     *
 | 
			
		||||
     * @throws \coding_exception
 | 
			
		||||
     */
 | 
			
		||||
    public function get_description() {
 | 
			
		||||
        return new \lang_string("backup", "moodle");
 | 
			
		||||
        return new lang_string('backup', 'moodle');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Get URL related to the action.
 | 
			
		||||
     *
 | 
			
		||||
     * @throws \moodle_exception
 | 
			
		||||
     */
 | 
			
		||||
    public function get_url() {
 | 
			
		||||
        return new \moodle_url("/local/webhooks/index.php");
 | 
			
		||||
        return new moodle_url('/local/webhooks/index.php');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Init method.
 | 
			
		||||
     */
 | 
			
		||||
    protected function init() {
 | 
			
		||||
        $this->data['crud'] = 'c';
 | 
			
		||||
        $this->data['edulevel'] = self::LEVEL_OTHER;
 | 
			
		||||
        $this->data['objecttable'] = 'local_webhooks_service';
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -26,40 +26,50 @@ namespace local_webhooks\event;
 | 
			
		||||
 | 
			
		||||
defined('MOODLE_INTERNAL') || die();
 | 
			
		||||
 | 
			
		||||
use core\event\base;
 | 
			
		||||
use lang_string;
 | 
			
		||||
use moodle_url;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Defines how to work with events.
 | 
			
		||||
 *
 | 
			
		||||
 * @copyright 2017 "Valentin Popov" <info@valentineus.link>
 | 
			
		||||
 * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 | 
			
		||||
 */
 | 
			
		||||
class backup_restored extends \core\event\base {
 | 
			
		||||
    /**
 | 
			
		||||
     * Init method.
 | 
			
		||||
     */
 | 
			
		||||
    protected function init() {
 | 
			
		||||
        $this->data["crud"]        = "u";
 | 
			
		||||
        $this->data["edulevel"]    = self::LEVEL_OTHER;
 | 
			
		||||
        $this->data["objecttable"] = "local_webhooks_service";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
class backup_restored extends base {
 | 
			
		||||
    /**
 | 
			
		||||
     * Return localised event name.
 | 
			
		||||
     *
 | 
			
		||||
     * @throws \coding_exception
 | 
			
		||||
     */
 | 
			
		||||
    public static function get_name() {
 | 
			
		||||
        return new \lang_string("update", "moodle");
 | 
			
		||||
        return new lang_string('update', 'moodle');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Returns description of what happened.
 | 
			
		||||
     *
 | 
			
		||||
     * @throws \coding_exception
 | 
			
		||||
     */
 | 
			
		||||
    public function get_description() {
 | 
			
		||||
        return new \lang_string("backupfinished", "moodle");
 | 
			
		||||
        return new lang_string('backupfinished', 'moodle');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Get URL related to the action.
 | 
			
		||||
     *
 | 
			
		||||
     * @throws \moodle_exception
 | 
			
		||||
     */
 | 
			
		||||
    public function get_url() {
 | 
			
		||||
        return new \moodle_url("/local/webhooks/index.php");
 | 
			
		||||
        return new moodle_url('/local/webhooks/index.php');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Init method.
 | 
			
		||||
     */
 | 
			
		||||
    protected function init() {
 | 
			
		||||
        $this->data['crud'] = 'u';
 | 
			
		||||
        $this->data['edulevel'] = self::LEVEL_OTHER;
 | 
			
		||||
        $this->data['objecttable'] = 'local_webhooks_service';
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -26,40 +26,48 @@ namespace local_webhooks\event;
 | 
			
		||||
 | 
			
		||||
defined('MOODLE_INTERNAL') || die();
 | 
			
		||||
 | 
			
		||||
use core\event\base;
 | 
			
		||||
use lang_string;
 | 
			
		||||
use moodle_url;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Defines how to work with events.
 | 
			
		||||
 *
 | 
			
		||||
 * @copyright 2017 "Valentin Popov" <info@valentineus.link>
 | 
			
		||||
 * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 | 
			
		||||
 */
 | 
			
		||||
class response_answer extends \core\event\base {
 | 
			
		||||
    /**
 | 
			
		||||
     * Init method.
 | 
			
		||||
     */
 | 
			
		||||
    protected function init() {
 | 
			
		||||
        $this->data["crud"]        = "r";
 | 
			
		||||
        $this->data["edulevel"]    = self::LEVEL_OTHER;
 | 
			
		||||
        $this->data["objecttable"] = "local_webhooks_service";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
class response_answer extends base {
 | 
			
		||||
    /**
 | 
			
		||||
     * Return localised event name.
 | 
			
		||||
     *
 | 
			
		||||
     * @throws \coding_exception
 | 
			
		||||
     */
 | 
			
		||||
    public static function get_name() {
 | 
			
		||||
        return new \lang_string("answer", "moodle");
 | 
			
		||||
        return new lang_string('answer', 'moodle');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Returns description of what happened.
 | 
			
		||||
     */
 | 
			
		||||
    public function get_description() {
 | 
			
		||||
        return $this->other["status"];
 | 
			
		||||
        return $this->other['status'];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Get URL related to the action.
 | 
			
		||||
     *
 | 
			
		||||
     * @throws \moodle_exception
 | 
			
		||||
     */
 | 
			
		||||
    public function get_url() {
 | 
			
		||||
        return new \moodle_url("/local/webhooks/editservice.php", array("serviceid" => $this->objectid));
 | 
			
		||||
        return new moodle_url('/local/webhooks/editservice.php', array('serviceid' => $this->objectid));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Init method.
 | 
			
		||||
     */
 | 
			
		||||
    protected function init() {
 | 
			
		||||
        $this->data['crud'] = 'r';
 | 
			
		||||
        $this->data['edulevel'] = self::LEVEL_OTHER;
 | 
			
		||||
        $this->data['objecttable'] = 'local_webhooks_service';
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -26,40 +26,50 @@ namespace local_webhooks\event;
 | 
			
		||||
 | 
			
		||||
defined('MOODLE_INTERNAL') || die();
 | 
			
		||||
 | 
			
		||||
use core\event\base;
 | 
			
		||||
use lang_string;
 | 
			
		||||
use moodle_url;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Defines how to work with events.
 | 
			
		||||
 *
 | 
			
		||||
 * @copyright 2017 "Valentin Popov" <info@valentineus.link>
 | 
			
		||||
 * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 | 
			
		||||
 */
 | 
			
		||||
class service_added extends \core\event\base {
 | 
			
		||||
    /**
 | 
			
		||||
     * Init method.
 | 
			
		||||
     */
 | 
			
		||||
    protected function init() {
 | 
			
		||||
        $this->data["crud"]        = "c";
 | 
			
		||||
        $this->data["edulevel"]    = self::LEVEL_OTHER;
 | 
			
		||||
        $this->data["objecttable"] = "local_webhooks_service";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
class service_added extends base {
 | 
			
		||||
    /**
 | 
			
		||||
     * Return localised event name.
 | 
			
		||||
     *
 | 
			
		||||
     * @throws \coding_exception
 | 
			
		||||
     */
 | 
			
		||||
    public static function get_name() {
 | 
			
		||||
        return new \lang_string("create", "moodle");
 | 
			
		||||
        return new lang_string('create', 'moodle');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Returns description of what happened.
 | 
			
		||||
     *
 | 
			
		||||
     * @throws \coding_exception
 | 
			
		||||
     */
 | 
			
		||||
    public function get_description() {
 | 
			
		||||
        return new \lang_string("eventwebserviceservicecreated", "webservice");
 | 
			
		||||
        return new lang_string('eventwebserviceservicecreated', 'webservice');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Get URL related to the action.
 | 
			
		||||
     *
 | 
			
		||||
     * @throws \moodle_exception
 | 
			
		||||
     */
 | 
			
		||||
    public function get_url() {
 | 
			
		||||
        return new \moodle_url("/local/webhooks/editservice.php", array("serviceid" => $this->objectid));
 | 
			
		||||
        return new moodle_url('/local/webhooks/editservice.php', array('serviceid' => $this->objectid));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Init method.
 | 
			
		||||
     */
 | 
			
		||||
    protected function init() {
 | 
			
		||||
        $this->data['crud'] = 'c';
 | 
			
		||||
        $this->data['edulevel'] = self::LEVEL_OTHER;
 | 
			
		||||
        $this->data['objecttable'] = 'local_webhooks_service';
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -26,40 +26,50 @@ namespace local_webhooks\event;
 | 
			
		||||
 | 
			
		||||
defined('MOODLE_INTERNAL') || die();
 | 
			
		||||
 | 
			
		||||
use core\event\base;
 | 
			
		||||
use lang_string;
 | 
			
		||||
use moodle_url;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Defines how to work with events.
 | 
			
		||||
 *
 | 
			
		||||
 * @copyright 2017 "Valentin Popov" <info@valentineus.link>
 | 
			
		||||
 * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 | 
			
		||||
 */
 | 
			
		||||
class service_deleted extends \core\event\base {
 | 
			
		||||
    /**
 | 
			
		||||
     * Init method.
 | 
			
		||||
     */
 | 
			
		||||
    protected function init() {
 | 
			
		||||
        $this->data["crud"]        = "d";
 | 
			
		||||
        $this->data["edulevel"]    = self::LEVEL_OTHER;
 | 
			
		||||
        $this->data["objecttable"] = "local_webhooks_service";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
class service_deleted extends base {
 | 
			
		||||
    /**
 | 
			
		||||
     * Return localised event name.
 | 
			
		||||
     *
 | 
			
		||||
     * @throws \coding_exception
 | 
			
		||||
     */
 | 
			
		||||
    public static function get_name() {
 | 
			
		||||
        return new \lang_string("deleted", "moodle");
 | 
			
		||||
        return new lang_string('deleted', 'moodle');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Returns description of what happened.
 | 
			
		||||
     *
 | 
			
		||||
     * @throws \coding_exception
 | 
			
		||||
     */
 | 
			
		||||
    public function get_description() {
 | 
			
		||||
        return new \lang_string("eventwebserviceservicedeleted", "webservice");
 | 
			
		||||
        return new lang_string('eventwebserviceservicedeleted', 'webservice');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Get URL related to the action.
 | 
			
		||||
     *
 | 
			
		||||
     * @throws \moodle_exception
 | 
			
		||||
     */
 | 
			
		||||
    public function get_url() {
 | 
			
		||||
        return new \moodle_url("/local/webhooks/index.php");
 | 
			
		||||
        return new moodle_url('/local/webhooks/index.php');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Init method.
 | 
			
		||||
     */
 | 
			
		||||
    protected function init() {
 | 
			
		||||
        $this->data['crud'] = 'd';
 | 
			
		||||
        $this->data['edulevel'] = self::LEVEL_OTHER;
 | 
			
		||||
        $this->data['objecttable'] = 'local_webhooks_service';
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -26,40 +26,50 @@ namespace local_webhooks\event;
 | 
			
		||||
 | 
			
		||||
defined('MOODLE_INTERNAL') || die();
 | 
			
		||||
 | 
			
		||||
use core\event\base;
 | 
			
		||||
use lang_string;
 | 
			
		||||
use moodle_url;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Defines how to work with events.
 | 
			
		||||
 *
 | 
			
		||||
 * @copyright 2017 "Valentin Popov" <info@valentineus.link>
 | 
			
		||||
 * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 | 
			
		||||
 */
 | 
			
		||||
class service_updated extends \core\event\base {
 | 
			
		||||
    /**
 | 
			
		||||
     * Init method.
 | 
			
		||||
     */
 | 
			
		||||
    protected function init() {
 | 
			
		||||
        $this->data["crud"]        = "u";
 | 
			
		||||
        $this->data["edulevel"]    = self::LEVEL_OTHER;
 | 
			
		||||
        $this->data["objecttable"] = "local_webhooks_service";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
class service_updated extends base {
 | 
			
		||||
    /**
 | 
			
		||||
     * Return localised event name.
 | 
			
		||||
     *
 | 
			
		||||
     * @throws \coding_exception
 | 
			
		||||
     */
 | 
			
		||||
    public static function get_name() {
 | 
			
		||||
        return new \lang_string("update", "moodle");
 | 
			
		||||
        return new lang_string('update', 'moodle');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Returns description of what happened.
 | 
			
		||||
     *
 | 
			
		||||
     * @throws \coding_exception
 | 
			
		||||
     */
 | 
			
		||||
    public function get_description() {
 | 
			
		||||
        return new \lang_string("eventwebserviceserviceupdated", "webservice");
 | 
			
		||||
        return new lang_string('eventwebserviceserviceupdated', 'webservice');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Get URL related to the action.
 | 
			
		||||
     *
 | 
			
		||||
     * @throws \moodle_exception
 | 
			
		||||
     */
 | 
			
		||||
    public function get_url() {
 | 
			
		||||
        return new \moodle_url("/local/webhooks/editservice.php", array("serviceid" => $this->objectid));
 | 
			
		||||
        return new moodle_url('/local/webhooks/editservice.php', array('serviceid' => $this->objectid));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Init method.
 | 
			
		||||
     */
 | 
			
		||||
    protected function init() {
 | 
			
		||||
        $this->data['crud'] = 'u';
 | 
			
		||||
        $this->data['edulevel'] = self::LEVEL_OTHER;
 | 
			
		||||
        $this->data['objecttable'] = 'local_webhooks_service';
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -26,10 +26,15 @@ namespace local_webhooks;
 | 
			
		||||
 | 
			
		||||
defined('MOODLE_INTERNAL') || die();
 | 
			
		||||
 | 
			
		||||
require_once(__DIR__ . "/../lib.php");
 | 
			
		||||
require_once(__DIR__ . "/../locallib.php");
 | 
			
		||||
global $CFG;
 | 
			
		||||
 | 
			
		||||
require_once($CFG->libdir . "/filelib.php");
 | 
			
		||||
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.
 | 
			
		||||
@@ -42,6 +47,9 @@ class handler {
 | 
			
		||||
     * External handler.
 | 
			
		||||
     *
 | 
			
		||||
     * @param object $event
 | 
			
		||||
     *
 | 
			
		||||
     * @throws \dml_exception
 | 
			
		||||
     * @throws \coding_exception
 | 
			
		||||
     */
 | 
			
		||||
    public static function events($event) {
 | 
			
		||||
        $data = $event->get_data();
 | 
			
		||||
@@ -58,36 +66,42 @@ class handler {
 | 
			
		||||
     *
 | 
			
		||||
     * @param array  $data
 | 
			
		||||
     * @param object $callback
 | 
			
		||||
     *
 | 
			
		||||
     * @throws \coding_exception
 | 
			
		||||
     * @throws \dml_exception
 | 
			
		||||
     */
 | 
			
		||||
    private static function handler_callback($data, $callback) {
 | 
			
		||||
        global $CFG;
 | 
			
		||||
 | 
			
		||||
        if (boolval($callback->enable)) {
 | 
			
		||||
            if (!empty($callback->events[$data["eventname"]])) {
 | 
			
		||||
        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;
 | 
			
		||||
            $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(array("Content-Type: application/" . $callback->type));
 | 
			
		||||
        $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);
 | 
			
		||||
        local_webhooks_events::response_answer($callback->id, $response);
 | 
			
		||||
 | 
			
		||||
        return $response;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -24,7 +24,7 @@
 | 
			
		||||
 | 
			
		||||
defined('MOODLE_INTERNAL') || die();
 | 
			
		||||
 | 
			
		||||
require_once($CFG->libdir . "/formslib.php");
 | 
			
		||||
require_once($CFG->libdir . '/formslib.php');
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Description editing form definition.
 | 
			
		||||
@@ -42,63 +42,65 @@ class service_edit_form extends moodleform {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Defines the standard structure of the form.
 | 
			
		||||
     *
 | 
			
		||||
     * @throws \coding_exception
 | 
			
		||||
     */
 | 
			
		||||
    protected function definition() {
 | 
			
		||||
        $mform =& $this->_form;
 | 
			
		||||
        $size  = array("size" => 60);
 | 
			
		||||
        $size = array('size' => 60);
 | 
			
		||||
 | 
			
		||||
        /* Form heading */
 | 
			
		||||
        $mform->addElement("header", "editserviceheader", new lang_string("service", "webservice"));
 | 
			
		||||
        $mform->addElement('header', 'editserviceheader', new lang_string('service', 'webservice'));
 | 
			
		||||
 | 
			
		||||
        /* Name of the service */
 | 
			
		||||
        $mform->addElement("text", "title", new lang_string("name", "moodle"), $size);
 | 
			
		||||
        $mform->addRule("title", null, "required");
 | 
			
		||||
        $mform->setType("title", PARAM_NOTAGS);
 | 
			
		||||
        $mform->addElement('text', 'title', new lang_string('name', 'moodle'), $size);
 | 
			
		||||
        $mform->addRule('title', null, 'required');
 | 
			
		||||
        $mform->setType('title', PARAM_NOTAGS);
 | 
			
		||||
 | 
			
		||||
        /* Callback address */
 | 
			
		||||
        $mform->addElement("text", "url", new lang_string("url", "moodle"), $size);
 | 
			
		||||
        $mform->addRule("url", null, "required");
 | 
			
		||||
        $mform->setType("url", PARAM_URL);
 | 
			
		||||
        $mform->addElement('text', 'url', new lang_string('url', 'moodle'), $size);
 | 
			
		||||
        $mform->addRule('url', null, 'required');
 | 
			
		||||
        $mform->setType('url', PARAM_URL);
 | 
			
		||||
 | 
			
		||||
        /* Enabling the service */
 | 
			
		||||
        $mform->addElement("advcheckbox", "enable", new lang_string("enable", "moodle"));
 | 
			
		||||
        $mform->setType("enable", PARAM_BOOL);
 | 
			
		||||
        $mform->setDefault("enable", 1);
 | 
			
		||||
        $mform->setAdvanced("enable");
 | 
			
		||||
        $mform->addElement('advcheckbox', 'enable', new lang_string('enable', 'moodle'));
 | 
			
		||||
        $mform->setType('enable', PARAM_BOOL);
 | 
			
		||||
        $mform->setDefault('enable', 1);
 | 
			
		||||
        $mform->setAdvanced('enable');
 | 
			
		||||
 | 
			
		||||
        /* Token */
 | 
			
		||||
        $mform->addElement("text", "token", new lang_string("token", "webservice"), $size);
 | 
			
		||||
        $mform->setType("token", PARAM_NOTAGS);
 | 
			
		||||
        $mform->addElement('text', 'token', new lang_string('token', 'webservice'), $size);
 | 
			
		||||
        $mform->setType('token', PARAM_NOTAGS);
 | 
			
		||||
 | 
			
		||||
        /* Additional information */
 | 
			
		||||
        $mform->addElement("text", "other", new lang_string("sourceext", "plugin"), $size);
 | 
			
		||||
        $mform->setType("other", PARAM_NOTAGS);
 | 
			
		||||
        $mform->setAdvanced("other");
 | 
			
		||||
        $mform->addElement('text', 'other', new lang_string('sourceext', 'plugin'), $size);
 | 
			
		||||
        $mform->setType('other', PARAM_NOTAGS);
 | 
			
		||||
        $mform->setAdvanced('other');
 | 
			
		||||
 | 
			
		||||
        /* Content type */
 | 
			
		||||
        $contenttype = array("json" => "application/json", "x-www-form-urlencoded" => "application/x-www-form-urlencoded");
 | 
			
		||||
        $mform->addElement("select", "type", "Content type", $contenttype);
 | 
			
		||||
        $mform->setAdvanced("type");
 | 
			
		||||
        $contenttype = array('json' => 'application/json', 'x-www-form-urlencoded' => 'application/x-www-form-urlencoded');
 | 
			
		||||
        $mform->addElement('select', 'type', 'Content type', $contenttype);
 | 
			
		||||
        $mform->setAdvanced('type');
 | 
			
		||||
 | 
			
		||||
        /* Form heading */
 | 
			
		||||
        $mform->addElement("header", "editserviceheaderevent", new lang_string("edulevel", "moodle"));
 | 
			
		||||
        $mform->addElement('header', 'editserviceheaderevent', new lang_string('edulevel', 'moodle'));
 | 
			
		||||
 | 
			
		||||
        /* List of events */
 | 
			
		||||
        $eventlist = report_eventlist_list_generator::get_all_events_list(true);
 | 
			
		||||
        $eventlist = report_eventlist_list_generator::get_all_events_list();
 | 
			
		||||
        $events = array();
 | 
			
		||||
 | 
			
		||||
        /* Formation of the list of elements */
 | 
			
		||||
        foreach ($eventlist as $event) {
 | 
			
		||||
            $events[$event["component"]][] =& $mform->createElement("checkbox", $event["eventname"], $event["eventname"]);
 | 
			
		||||
            $events[$event['component']][] =& $mform->createElement('checkbox', $event['eventname'], $event['eventname']);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /* Displays groups of items */
 | 
			
		||||
        foreach ($events as $key => $event) {
 | 
			
		||||
            $mform->addGroup($event, "events", $key, "<br />", true);
 | 
			
		||||
            $mform->addGroup($event, 'events', $key, '<br />');
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /* Control Panel */
 | 
			
		||||
        $this->add_action_buttons(true);
 | 
			
		||||
        $this->add_action_buttons();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -118,18 +120,20 @@ class service_backup_form extends moodleform {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Defines the standard structure of the form.
 | 
			
		||||
     *
 | 
			
		||||
     * @throws \coding_exception
 | 
			
		||||
     */
 | 
			
		||||
    protected function definition() {
 | 
			
		||||
        $mform =& $this->_form;
 | 
			
		||||
 | 
			
		||||
        /* Form heading */
 | 
			
		||||
        $mform->addElement("header", "editserviceheader", new lang_string("restore", "moodle"));
 | 
			
		||||
        $mform->addElement('header', 'editserviceheader', new lang_string('restore', 'moodle'));
 | 
			
		||||
 | 
			
		||||
        /* Download the file */
 | 
			
		||||
        $mform->addElement("filepicker", "backupfile", new lang_string("file", "moodle"));
 | 
			
		||||
        $mform->addRule("backupfile", null, "required");
 | 
			
		||||
        $mform->addElement('filepicker', 'backupfile', new lang_string('file', 'moodle'));
 | 
			
		||||
        $mform->addRule('backupfile', null, 'required');
 | 
			
		||||
 | 
			
		||||
        /* Control Panel */
 | 
			
		||||
        $this->add_action_buttons(true, new lang_string("restore", "moodle"));
 | 
			
		||||
        $this->add_action_buttons(true, new lang_string('restore', 'moodle'));
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -26,10 +26,10 @@ defined('MOODLE_INTERNAL') || die();
 | 
			
		||||
 | 
			
		||||
$observers = array(
 | 
			
		||||
    array(
 | 
			
		||||
        "callback"    => "\local_webhooks\\handler::events",
 | 
			
		||||
        "eventname"   => "*",
 | 
			
		||||
        "includefile" => null,
 | 
			
		||||
        "internal"    => true,
 | 
			
		||||
        "priority"    => 200
 | 
			
		||||
    )
 | 
			
		||||
        'callback'    => '\local_webhooks\handler::events',
 | 
			
		||||
        'eventname'   => '*',
 | 
			
		||||
        'includefile' => null,
 | 
			
		||||
        'internal'    => true,
 | 
			
		||||
        'priority'    => 200,
 | 
			
		||||
    ),
 | 
			
		||||
);
 | 
			
		||||
@@ -1,5 +1,7 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8" ?>
 | 
			
		||||
<XMLDB PATH="local/webhooks/db" VERSION="2018061900" COMMENT="XMLDB file for Moodle" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../lib/xmldb/xmldb.xsd">
 | 
			
		||||
<XMLDB PATH="local/webhooks/db" VERSION="2018061900" COMMENT="XMLDB file for Moodle"
 | 
			
		||||
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 | 
			
		||||
       xsi:noNamespaceSchemaLocation="../../../lib/xmldb/xmldb.xsd">
 | 
			
		||||
    <TABLES>
 | 
			
		||||
        <TABLE NAME="local_webhooks_service" COMMENT="A table for storing callback services.">
 | 
			
		||||
            <FIELDS>
 | 
			
		||||
 
 | 
			
		||||
@@ -22,22 +22,22 @@
 | 
			
		||||
 * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
require_once(__DIR__ . "/../../config.php");
 | 
			
		||||
require_once(__DIR__ . "/classes/service_form.php");
 | 
			
		||||
require_once(__DIR__ . "/lib.php");
 | 
			
		||||
require_once(__DIR__ . '/../../config.php');
 | 
			
		||||
require_once(__DIR__ . '/classes/service_form.php');
 | 
			
		||||
require_once(__DIR__ . '/lib.php');
 | 
			
		||||
 | 
			
		||||
require_once($CFG->libdir . "/adminlib.php");
 | 
			
		||||
require_once($CFG->libdir . '/adminlib.php');
 | 
			
		||||
 | 
			
		||||
/* Optional parameters */
 | 
			
		||||
$serviceid = optional_param("serviceid", 0, PARAM_INT);
 | 
			
		||||
$serviceid = optional_param('serviceid', 0, PARAM_INT);
 | 
			
		||||
 | 
			
		||||
/* Link generation */
 | 
			
		||||
$urlparameters  = array("serviceid" => $serviceid);
 | 
			
		||||
$baseurl        = new moodle_url("/local/webhooks/editservice.php", $urlparameters);
 | 
			
		||||
$managerservice = new moodle_url("/local/webhooks/index.php");
 | 
			
		||||
$urlparameters = array('serviceid' => $serviceid);
 | 
			
		||||
$baseurl = new moodle_url('/local/webhooks/editservice.php', $urlparameters);
 | 
			
		||||
$managerservice = new moodle_url('/local/webhooks/index.php');
 | 
			
		||||
 | 
			
		||||
/* Configure the context of the page */
 | 
			
		||||
admin_externalpage_setup("local_webhooks", "", null, $baseurl, array());
 | 
			
		||||
admin_externalpage_setup('local_webhooks', '', null, $baseurl);
 | 
			
		||||
$context = context_system::instance();
 | 
			
		||||
 | 
			
		||||
/* Create an editing form */
 | 
			
		||||
@@ -50,7 +50,7 @@ if ($mform->is_cancelled()) {
 | 
			
		||||
 | 
			
		||||
/* Getting the data */
 | 
			
		||||
$servicerecord = new stdClass();
 | 
			
		||||
if ($editing = boolval($serviceid)) {
 | 
			
		||||
if ($editing = (bool) $serviceid) {
 | 
			
		||||
    $servicerecord = local_webhooks_get_record($serviceid);
 | 
			
		||||
    $mform->set_data($servicerecord);
 | 
			
		||||
}
 | 
			
		||||
@@ -60,15 +60,15 @@ if ($data = $mform->get_data()) {
 | 
			
		||||
    if ($editing) {
 | 
			
		||||
        $data->id = $serviceid;
 | 
			
		||||
        local_webhooks_update_record($data, false);
 | 
			
		||||
        redirect($managerservice, new lang_string("eventwebserviceserviceupdated", "webservice"));
 | 
			
		||||
        redirect($managerservice, new lang_string('eventwebserviceserviceupdated', 'webservice'));
 | 
			
		||||
    } else {
 | 
			
		||||
        local_webhooks_update_record($data, true);
 | 
			
		||||
        redirect($managerservice, new lang_string("eventwebserviceservicecreated", "webservice"));
 | 
			
		||||
        local_webhooks_update_record($data);
 | 
			
		||||
        redirect($managerservice, new lang_string('eventwebserviceservicecreated', 'webservice'));
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* The page title */
 | 
			
		||||
$titlepage = new lang_string("externalservice", "webservice");
 | 
			
		||||
$titlepage = new lang_string('externalservice', 'webservice');
 | 
			
		||||
$PAGE->navbar->add($titlepage);
 | 
			
		||||
$PAGE->set_heading($titlepage);
 | 
			
		||||
$PAGE->set_title($titlepage);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										90
									
								
								index.php
									
									
									
									
									
								
							
							
						
						
									
										90
									
								
								index.php
									
									
									
									
									
								
							@@ -22,93 +22,107 @@
 | 
			
		||||
 * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
require_once(__DIR__ . "/../../config.php");
 | 
			
		||||
require_once(__DIR__ . "/lib.php");
 | 
			
		||||
require_once(__DIR__ . '/../../config.php');
 | 
			
		||||
require_once(__DIR__ . '/lib.php');
 | 
			
		||||
 | 
			
		||||
require_once($CFG->libdir . "/adminlib.php");
 | 
			
		||||
require_once($CFG->libdir . "/tablelib.php");
 | 
			
		||||
require_once($CFG->libdir . '/adminlib.php');
 | 
			
		||||
require_once($CFG->libdir . '/tablelib.php');
 | 
			
		||||
 | 
			
		||||
/* Optional parameters */
 | 
			
		||||
$backupservices = optional_param("getbackup", 0, PARAM_BOOL);
 | 
			
		||||
$deleteid       = optional_param("deleteid", 0, PARAM_INT);
 | 
			
		||||
$hideshowid     = optional_param("hideshowid", 0, PARAM_INT);
 | 
			
		||||
$backupservices = optional_param('getbackup', 0, PARAM_BOOL);
 | 
			
		||||
$deleteid = optional_param('deleteid', 0, PARAM_INT);
 | 
			
		||||
$hideshowid = optional_param('hideshowid', 0, PARAM_INT);
 | 
			
		||||
 | 
			
		||||
/* Link generation */
 | 
			
		||||
$editservice    = "/local/webhooks/editservice.php";
 | 
			
		||||
$managerservice = "/local/webhooks/index.php";
 | 
			
		||||
$restorebackup  = "/local/webhooks/restorebackup.php";
 | 
			
		||||
$editservice = '/local/webhooks/editservice.php';
 | 
			
		||||
$managerservice = '/local/webhooks/index.php';
 | 
			
		||||
$restorebackup = '/local/webhooks/restorebackup.php';
 | 
			
		||||
$baseurl = new moodle_url($managerservice);
 | 
			
		||||
 | 
			
		||||
/* Configure the context of the page */
 | 
			
		||||
admin_externalpage_setup("local_webhooks", "", null, $baseurl, array());
 | 
			
		||||
admin_externalpage_setup('local_webhooks', '', null, $baseurl);
 | 
			
		||||
$context = context_system::instance();
 | 
			
		||||
 | 
			
		||||
/* Delete the service */
 | 
			
		||||
if (boolval($deleteid)) {
 | 
			
		||||
if ((bool) $deleteid) {
 | 
			
		||||
    local_webhooks_remove_record($deleteid);
 | 
			
		||||
    redirect($PAGE->url, new lang_string("eventwebserviceservicedeleted", "webservice"));
 | 
			
		||||
    redirect($PAGE->url, new lang_string('eventwebserviceservicedeleted', 'webservice'));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Retrieving a list of services */
 | 
			
		||||
$callbacks = local_webhooks_get_list_records();
 | 
			
		||||
 | 
			
		||||
/* Upload settings as a file */
 | 
			
		||||
if (boolval($backupservices)) {
 | 
			
		||||
if ((bool) $backupservices) {
 | 
			
		||||
    $filecontent = local_webhooks_create_backup();
 | 
			
		||||
    $filename    = "webhooks_" . date("U") . ".backup";
 | 
			
		||||
    $filename = 'webhooks_' . date('U') . '.backup';
 | 
			
		||||
    send_file($filecontent, $filename, 0, 0, true, true);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Switching the status of the service */
 | 
			
		||||
if (boolval($hideshowid)) {
 | 
			
		||||
if ((bool) $hideshowid) {
 | 
			
		||||
    $callback = $callbacks[$hideshowid];
 | 
			
		||||
 | 
			
		||||
    if (!empty($callback)) {
 | 
			
		||||
        $callback->enable = !boolval($callback->enable);
 | 
			
		||||
        $callback->enable = !(bool) $callback->enable;
 | 
			
		||||
        local_webhooks_update_record($callback, false);
 | 
			
		||||
        redirect($PAGE->url, new lang_string("eventwebserviceserviceupdated", "webservice"));
 | 
			
		||||
        redirect($PAGE->url, new lang_string('eventwebserviceserviceupdated', 'webservice'));
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* The page title */
 | 
			
		||||
$titlepage = new lang_string("pluginname", "local_webhooks");
 | 
			
		||||
$titlepage = new lang_string('pluginname', 'local_webhooks');
 | 
			
		||||
$PAGE->set_heading($titlepage);
 | 
			
		||||
$PAGE->set_title($titlepage);
 | 
			
		||||
echo $OUTPUT->header();
 | 
			
		||||
 | 
			
		||||
/* Table declaration */
 | 
			
		||||
$table = new flexible_table("webhooks-service-table");
 | 
			
		||||
$table = new flexible_table('webhooks-service-table');
 | 
			
		||||
 | 
			
		||||
/* Customize the table */
 | 
			
		||||
$table->define_columns(array("title", "url", "actions"));
 | 
			
		||||
$table->define_headers(array(new lang_string("name", "moodle"), new lang_string("url", "moodle"), new lang_string("actions", "moodle")));
 | 
			
		||||
$table->define_columns(
 | 
			
		||||
    array(
 | 
			
		||||
        'title',
 | 
			
		||||
        'url',
 | 
			
		||||
        'actions',
 | 
			
		||||
    )
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
$table->define_headers(
 | 
			
		||||
    array(
 | 
			
		||||
        new lang_string('name', 'moodle'),
 | 
			
		||||
        new lang_string('url', 'moodle'),
 | 
			
		||||
        new lang_string('actions', 'moodle'),
 | 
			
		||||
    )
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
$table->define_baseurl($baseurl);
 | 
			
		||||
$table->setup();
 | 
			
		||||
 | 
			
		||||
foreach ($callbacks as $callback) {
 | 
			
		||||
    /* Filling of information columns */
 | 
			
		||||
    $titlecallback = html_writer::div($callback->title, "title");
 | 
			
		||||
    $urlcallback   = html_writer::div($callback->url, "url");
 | 
			
		||||
    $titlecallback = html_writer::div($callback->title, 'title');
 | 
			
		||||
    $urlcallback = html_writer::div($callback->url, 'url');
 | 
			
		||||
 | 
			
		||||
    /* Defining service status */
 | 
			
		||||
    $hideshowicon   = "t/show";
 | 
			
		||||
    $hideshowstring = new lang_string("enable", "moodle");
 | 
			
		||||
    if (boolval($callback->enable)) {
 | 
			
		||||
        $hideshowicon   = "t/hide";
 | 
			
		||||
        $hideshowstring = new lang_string("disable", "moodle");
 | 
			
		||||
    $hideshowicon = 't/show';
 | 
			
		||||
    $hideshowstring = new lang_string('enable', 'moodle');
 | 
			
		||||
    if ((bool) $callback->enable) {
 | 
			
		||||
        $hideshowicon = 't/hide';
 | 
			
		||||
        $hideshowstring = new lang_string('disable', 'moodle');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /* Link to enable / disable the service */
 | 
			
		||||
    $hideshowlink = new moodle_url($managerservice, array("hideshowid" => $callback->id));
 | 
			
		||||
    $hideshowlink = new moodle_url($managerservice, array('hideshowid' => $callback->id));
 | 
			
		||||
    $hideshowitem = $OUTPUT->action_icon($hideshowlink, new pix_icon($hideshowicon, $hideshowstring));
 | 
			
		||||
 | 
			
		||||
    /* Link for editing */
 | 
			
		||||
    $editlink = new moodle_url($editservice, array("serviceid" => $callback->id));
 | 
			
		||||
    $edititem = $OUTPUT->action_icon($editlink, new pix_icon("t/edit", new lang_string("edit", "moodle")));
 | 
			
		||||
    $editlink = new moodle_url($editservice, array('serviceid' => $callback->id));
 | 
			
		||||
    $edititem = $OUTPUT->action_icon($editlink, new pix_icon('t/edit', new lang_string('edit', 'moodle')));
 | 
			
		||||
 | 
			
		||||
    /* Link to remove */
 | 
			
		||||
    $deletelink = new moodle_url($managerservice, array("deleteid" => $callback->id));
 | 
			
		||||
    $deleteitem = $OUTPUT->action_icon($deletelink, new pix_icon("t/delete", new lang_string("delete", "moodle")));
 | 
			
		||||
    $deletelink = new moodle_url($managerservice, array('deleteid' => $callback->id));
 | 
			
		||||
    $deleteitem = $OUTPUT->action_icon($deletelink, new pix_icon('t/delete', new lang_string('delete', 'moodle')));
 | 
			
		||||
 | 
			
		||||
    /* Adding data to the table */
 | 
			
		||||
    $table->add_data(array($titlecallback, $urlcallback, $hideshowitem . $edititem . $deleteitem));
 | 
			
		||||
@@ -119,14 +133,14 @@ $table->print_html();
 | 
			
		||||
 | 
			
		||||
/* Add service button */
 | 
			
		||||
$addserviceurl = new moodle_url($editservice);
 | 
			
		||||
echo $OUTPUT->single_button($addserviceurl, new lang_string("addaservice", "webservice"), "get");
 | 
			
		||||
echo $OUTPUT->single_button($addserviceurl, new lang_string('addaservice', 'webservice'), 'get');
 | 
			
		||||
 | 
			
		||||
/* Button to get a backup */
 | 
			
		||||
$backupurl = new moodle_url($managerservice, array("getbackup" => true));
 | 
			
		||||
echo $OUTPUT->single_button($backupurl, new lang_string("backup", "moodle"), "get");
 | 
			
		||||
$backupurl = new moodle_url($managerservice, array('getbackup' => true));
 | 
			
		||||
echo $OUTPUT->single_button($backupurl, new lang_string('backup', 'moodle'), 'get');
 | 
			
		||||
 | 
			
		||||
/* Button for restoring settings */
 | 
			
		||||
$restorebackupurl = new moodle_url($restorebackup);
 | 
			
		||||
echo $OUTPUT->single_button($restorebackupurl, new lang_string("restore", "moodle"), "get");
 | 
			
		||||
echo $OUTPUT->single_button($restorebackupurl, new lang_string('restore', 'moodle'), 'get');
 | 
			
		||||
 | 
			
		||||
echo $OUTPUT->footer();
 | 
			
		||||
@@ -22,4 +22,4 @@
 | 
			
		||||
 * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
$string["pluginname"] = "WebHooks";
 | 
			
		||||
$string['pluginname'] = 'WebHooks';
 | 
			
		||||
							
								
								
									
										62
									
								
								lib.php
									
									
									
									
									
								
							
							
						
						
									
										62
									
								
								lib.php
									
									
									
									
									
								
							@@ -24,19 +24,21 @@
 | 
			
		||||
 | 
			
		||||
defined('MOODLE_INTERNAL') || die();
 | 
			
		||||
 | 
			
		||||
require_once(__DIR__ . "/locallib.php");
 | 
			
		||||
require_once(__DIR__ . '/locallib.php');
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Getting a list of all services.
 | 
			
		||||
 *
 | 
			
		||||
 * @param  number $limitfrom
 | 
			
		||||
 * @param  number $limitnum
 | 
			
		||||
 * @param int $limitfrom
 | 
			
		||||
 * @param int $limitnum
 | 
			
		||||
 *
 | 
			
		||||
 * @return array
 | 
			
		||||
 * @throws \dml_exception
 | 
			
		||||
 */
 | 
			
		||||
function local_webhooks_get_list_records($limitfrom = 0, $limitnum = 0) {
 | 
			
		||||
    global $DB;
 | 
			
		||||
 | 
			
		||||
    $listservices = $DB->get_records("local_webhooks_service", null, "id", "*", $limitfrom, $limitnum);
 | 
			
		||||
    $listservices = $DB->get_records('local_webhooks_service', null, 'id', '*', $limitfrom, $limitnum);
 | 
			
		||||
 | 
			
		||||
    foreach ($listservices as $servicerecord) {
 | 
			
		||||
        if (!empty($servicerecord->events)) {
 | 
			
		||||
@@ -50,13 +52,15 @@ function local_webhooks_get_list_records($limitfrom = 0, $limitnum = 0) {
 | 
			
		||||
/**
 | 
			
		||||
 * Getting information about the service.
 | 
			
		||||
 *
 | 
			
		||||
 * @param  number $serviceid
 | 
			
		||||
 * @param int $serviceid
 | 
			
		||||
 *
 | 
			
		||||
 * @return object
 | 
			
		||||
 * @throws \dml_exception
 | 
			
		||||
 */
 | 
			
		||||
function local_webhooks_get_record($serviceid = 0) {
 | 
			
		||||
    global $DB;
 | 
			
		||||
 | 
			
		||||
    $servicerecord = $DB->get_record("local_webhooks_service", array("id" => $serviceid), "*", MUST_EXIST);
 | 
			
		||||
    $servicerecord = $DB->get_record('local_webhooks_service', array('id' => $serviceid), '*', MUST_EXIST);
 | 
			
		||||
 | 
			
		||||
    if (!empty($servicerecord->events)) {
 | 
			
		||||
        $servicerecord->events = local_webhooks_unarchive_data($servicerecord->events);
 | 
			
		||||
@@ -67,22 +71,27 @@ function local_webhooks_get_record($serviceid = 0) {
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Clear the database table.
 | 
			
		||||
 *
 | 
			
		||||
 * @throws \dml_exception
 | 
			
		||||
 */
 | 
			
		||||
function local_webhooks_remove_list_records() {
 | 
			
		||||
    global $DB;
 | 
			
		||||
 | 
			
		||||
    $DB->delete_records("local_webhooks_service", null);
 | 
			
		||||
    $DB->delete_records('local_webhooks_service');
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Delete the record.
 | 
			
		||||
 *
 | 
			
		||||
 * @param number $serviceid
 | 
			
		||||
 * @param int $serviceid
 | 
			
		||||
 *
 | 
			
		||||
 * @throws \dml_exception
 | 
			
		||||
 * @throws \coding_exception
 | 
			
		||||
 */
 | 
			
		||||
function local_webhooks_remove_record($serviceid = 0) {
 | 
			
		||||
    global $DB;
 | 
			
		||||
 | 
			
		||||
    $DB->delete_records("local_webhooks_service", array("id" => $serviceid));
 | 
			
		||||
    $DB->delete_records('local_webhooks_service', array('id' => $serviceid));
 | 
			
		||||
    local_webhooks_events::service_deleted($serviceid);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -91,7 +100,10 @@ function local_webhooks_remove_record($serviceid = 0) {
 | 
			
		||||
 *
 | 
			
		||||
 * @param  object  $data
 | 
			
		||||
 * @param  boolean $insert
 | 
			
		||||
 *
 | 
			
		||||
 * @return boolean
 | 
			
		||||
 * @throws \dml_exception
 | 
			
		||||
 * @throws \coding_exception
 | 
			
		||||
 */
 | 
			
		||||
function local_webhooks_update_record($data, $insert = true) {
 | 
			
		||||
    global $DB;
 | 
			
		||||
@@ -102,41 +114,47 @@ function local_webhooks_update_record($data, $insert = true) {
 | 
			
		||||
 | 
			
		||||
    $data->events = local_webhooks_archiving_data($data->events);
 | 
			
		||||
 | 
			
		||||
    if (boolval($insert)) {
 | 
			
		||||
        $result = $DB->insert_record("local_webhooks_service", $data, true, false);
 | 
			
		||||
    if ((bool) $insert) {
 | 
			
		||||
        $result = $DB->insert_record('local_webhooks_service', $data);
 | 
			
		||||
        local_webhooks_events::service_added($result);
 | 
			
		||||
    } else {
 | 
			
		||||
        $result = $DB->update_record("local_webhooks_service", $data, false);
 | 
			
		||||
        $result = $DB->update_record('local_webhooks_service', $data);
 | 
			
		||||
        local_webhooks_events::service_updated($data->id);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return boolval($result);
 | 
			
		||||
    return (bool) $result;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Make a backup copy of all the services.
 | 
			
		||||
 *
 | 
			
		||||
 * @return string
 | 
			
		||||
 * @throws \dml_exception
 | 
			
		||||
 * @throws \coding_exception
 | 
			
		||||
 */
 | 
			
		||||
function local_webhooks_create_backup() {
 | 
			
		||||
    $listservices = local_webhooks_get_list_records();
 | 
			
		||||
    $listservices = local_webhooks_archiving_data($listservices);
 | 
			
		||||
    local_webhooks_events::backup_performed();
 | 
			
		||||
 | 
			
		||||
    return $listservices;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Restore the data from the backup.
 | 
			
		||||
 *
 | 
			
		||||
 * @param string $data
 | 
			
		||||
 * @param string $listservices
 | 
			
		||||
 *
 | 
			
		||||
 * @throws \dml_exception
 | 
			
		||||
 * @throws \coding_exception
 | 
			
		||||
 */
 | 
			
		||||
function local_webhooks_restore_backup($listservices = "") {
 | 
			
		||||
function local_webhooks_restore_backup($listservices = '') {
 | 
			
		||||
    $listservices = local_webhooks_unarchive_data($listservices);
 | 
			
		||||
 | 
			
		||||
    local_webhooks_remove_list_records();
 | 
			
		||||
 | 
			
		||||
    foreach ($listservices as $servicerecord) {
 | 
			
		||||
        local_webhooks_update_record($servicerecord, true);
 | 
			
		||||
        local_webhooks_update_record($servicerecord);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    local_webhooks_events::backup_restored();
 | 
			
		||||
@@ -146,20 +164,20 @@ function local_webhooks_restore_backup($listservices = "") {
 | 
			
		||||
 * Compress an array into a string.
 | 
			
		||||
 *
 | 
			
		||||
 * @param  array $data
 | 
			
		||||
 *
 | 
			
		||||
 * @return string
 | 
			
		||||
 */
 | 
			
		||||
function local_webhooks_archiving_data($data = array()) {
 | 
			
		||||
    $result = base64_encode(gzcompress(serialize($data), 3));
 | 
			
		||||
    return $result;
 | 
			
		||||
function local_webhooks_archiving_data(array $data = array()) {
 | 
			
		||||
    return base64_encode(gzcompress(serialize($data), 3));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Gets an array from a compressed string.
 | 
			
		||||
 *
 | 
			
		||||
 * @param  string $data
 | 
			
		||||
 *
 | 
			
		||||
 * @return array
 | 
			
		||||
 */
 | 
			
		||||
function local_webhooks_unarchive_data($data = "") {
 | 
			
		||||
    $result = unserialize(gzuncompress(base64_decode($data)));
 | 
			
		||||
    return $result;
 | 
			
		||||
function local_webhooks_unarchive_data($data = '') {
 | 
			
		||||
    return unserialize(gzuncompress(base64_decode($data)));
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										63
									
								
								locallib.php
									
									
									
									
									
								
							
							
						
						
									
										63
									
								
								locallib.php
									
									
									
									
									
								
							@@ -33,14 +33,17 @@ defined('MOODLE_INTERNAL') || die();
 | 
			
		||||
class local_webhooks_events {
 | 
			
		||||
    /**
 | 
			
		||||
     * Call the event when creating a backup.
 | 
			
		||||
     *
 | 
			
		||||
     * @throws \coding_exception
 | 
			
		||||
     * @throws \dml_exception
 | 
			
		||||
     */
 | 
			
		||||
    public static function backup_performed() {
 | 
			
		||||
        $context = context_system::instance();
 | 
			
		||||
 | 
			
		||||
        $event = local_webhooks\event\backup_performed::create(
 | 
			
		||||
            array(
 | 
			
		||||
                "context"  => $context,
 | 
			
		||||
                "objectid" => 0
 | 
			
		||||
                'context'  => $context,
 | 
			
		||||
                'objectid' => 0,
 | 
			
		||||
            )
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
@@ -49,14 +52,17 @@ class local_webhooks_events {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Call the event when restoring from a backup.
 | 
			
		||||
     *
 | 
			
		||||
     * @throws \coding_exception
 | 
			
		||||
     * @throws \dml_exception
 | 
			
		||||
     */
 | 
			
		||||
    public static function backup_restored() {
 | 
			
		||||
        $context = context_system::instance();
 | 
			
		||||
 | 
			
		||||
        $event = local_webhooks\event\backup_restored::create(
 | 
			
		||||
            array(
 | 
			
		||||
                "context"  => $context,
 | 
			
		||||
                "objectid" => 0
 | 
			
		||||
                'context'  => $context,
 | 
			
		||||
                'objectid' => 0,
 | 
			
		||||
            )
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
@@ -66,22 +72,25 @@ class local_webhooks_events {
 | 
			
		||||
    /**
 | 
			
		||||
     * Call event when the response is received from the service
 | 
			
		||||
     *
 | 
			
		||||
     * @param number $objectid Service ID
 | 
			
		||||
     * @param int   $objectid Service ID
 | 
			
		||||
     * @param array $response Server response
 | 
			
		||||
     *
 | 
			
		||||
     * @throws \coding_exception
 | 
			
		||||
     * @throws \dml_exception
 | 
			
		||||
     */
 | 
			
		||||
    public static function response_answer($objectid = 0, $response = array()) {
 | 
			
		||||
    public static function response_answer($objectid = 0, array $response = array()) {
 | 
			
		||||
        $context = context_system::instance();
 | 
			
		||||
 | 
			
		||||
        $status = "Error sending request";
 | 
			
		||||
        if (!empty($response["HTTP/1.1"])) {
 | 
			
		||||
            $status = $response["HTTP/1.1"];
 | 
			
		||||
        $status = 'Error sending request';
 | 
			
		||||
        if (!empty($response['HTTP/1.1'])) {
 | 
			
		||||
            $status = $response['HTTP/1.1'];
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $event = local_webhooks\event\response_answer::create(
 | 
			
		||||
            array(
 | 
			
		||||
                "context"  => $context,
 | 
			
		||||
                "objectid" => $objectid,
 | 
			
		||||
                "other"    => array("status" => $status)
 | 
			
		||||
                'context'  => $context,
 | 
			
		||||
                'objectid' => $objectid,
 | 
			
		||||
                'other'    => array('status' => $status),
 | 
			
		||||
            )
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
@@ -91,16 +100,16 @@ class local_webhooks_events {
 | 
			
		||||
    /**
 | 
			
		||||
     * Call the event when the service is added.
 | 
			
		||||
     *
 | 
			
		||||
     * @param number $objectid Service ID
 | 
			
		||||
     * @param int $objectid Service ID
 | 
			
		||||
     *
 | 
			
		||||
     * @throws \coding_exception
 | 
			
		||||
     * @throws \dml_exception
 | 
			
		||||
     */
 | 
			
		||||
    public static function service_added($objectid = 0) {
 | 
			
		||||
        $context = context_system::instance();
 | 
			
		||||
 | 
			
		||||
        $event = local_webhooks\event\service_added::create(
 | 
			
		||||
            array(
 | 
			
		||||
                "context"  => $context,
 | 
			
		||||
                "objectid" => $objectid
 | 
			
		||||
            )
 | 
			
		||||
            compact('context', 'objectid')
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        $event->trigger();
 | 
			
		||||
@@ -109,16 +118,16 @@ class local_webhooks_events {
 | 
			
		||||
    /**
 | 
			
		||||
     * Call the event when the service is deleted.
 | 
			
		||||
     *
 | 
			
		||||
     * @param number $objectid Service ID
 | 
			
		||||
     * @param int $objectid Service ID
 | 
			
		||||
     *
 | 
			
		||||
     * @throws \coding_exception
 | 
			
		||||
     * @throws \dml_exception
 | 
			
		||||
     */
 | 
			
		||||
    public static function service_deleted($objectid = 0) {
 | 
			
		||||
        $context = context_system::instance();
 | 
			
		||||
 | 
			
		||||
        $event = local_webhooks\event\service_deleted::create(
 | 
			
		||||
            array(
 | 
			
		||||
                "context"  => $context,
 | 
			
		||||
                "objectid" => $objectid
 | 
			
		||||
            )
 | 
			
		||||
            compact('context', 'objectid')
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        $event->trigger();
 | 
			
		||||
@@ -127,16 +136,16 @@ class local_webhooks_events {
 | 
			
		||||
    /**
 | 
			
		||||
     * Call event when the service is updated.
 | 
			
		||||
     *
 | 
			
		||||
     * @param number $objectid Service ID
 | 
			
		||||
     * @param int $objectid Service ID
 | 
			
		||||
     *
 | 
			
		||||
     * @throws \coding_exception
 | 
			
		||||
     * @throws \dml_exception
 | 
			
		||||
     */
 | 
			
		||||
    public static function service_updated($objectid = 0) {
 | 
			
		||||
        $context = context_system::instance();
 | 
			
		||||
 | 
			
		||||
        $event = local_webhooks\event\service_updated::create(
 | 
			
		||||
            array(
 | 
			
		||||
                "context"  => $context,
 | 
			
		||||
                "objectid" => $objectid
 | 
			
		||||
            )
 | 
			
		||||
            compact('context', 'objectid')
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        $event->trigger();
 | 
			
		||||
 
 | 
			
		||||
@@ -22,18 +22,18 @@
 | 
			
		||||
 * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
require_once(__DIR__ . "/../../config.php");
 | 
			
		||||
require_once(__DIR__ . "/classes/service_form.php");
 | 
			
		||||
require_once(__DIR__ . "/lib.php");
 | 
			
		||||
require_once(__DIR__ . '/../../config.php');
 | 
			
		||||
require_once(__DIR__ . '/classes/service_form.php');
 | 
			
		||||
require_once(__DIR__ . '/lib.php');
 | 
			
		||||
 | 
			
		||||
require_once($CFG->libdir . "/adminlib.php");
 | 
			
		||||
require_once($CFG->libdir . '/adminlib.php');
 | 
			
		||||
 | 
			
		||||
/* Link generation */
 | 
			
		||||
$baseurl        = new moodle_url("/local/webhooks/restorebackup.php");
 | 
			
		||||
$managerservice = new moodle_url("/local/webhooks/index.php");
 | 
			
		||||
$baseurl = new moodle_url('/local/webhooks/restorebackup.php');
 | 
			
		||||
$managerservice = new moodle_url('/local/webhooks/index.php');
 | 
			
		||||
 | 
			
		||||
/* Configure the context of the page */
 | 
			
		||||
admin_externalpage_setup("local_webhooks", "", null, $baseurl, array());
 | 
			
		||||
admin_externalpage_setup('local_webhooks', '', null, $baseurl);
 | 
			
		||||
$context = context_system::instance();
 | 
			
		||||
 | 
			
		||||
/* Create an editing form */
 | 
			
		||||
@@ -46,13 +46,13 @@ if ($mform->is_cancelled()) {
 | 
			
		||||
 | 
			
		||||
/* Processing the received file */
 | 
			
		||||
if ($data = $mform->get_data()) {
 | 
			
		||||
    $content = $mform->get_file_content("backupfile");
 | 
			
		||||
    $content = $mform->get_file_content('backupfile');
 | 
			
		||||
    local_webhooks_restore_backup($content);
 | 
			
		||||
    redirect($managerservice, new lang_string("restorefinished", "moodle"));
 | 
			
		||||
    redirect($managerservice, new lang_string('restorefinished', 'moodle'));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* The page title */
 | 
			
		||||
$titlepage = new lang_string("backup", "moodle");
 | 
			
		||||
$titlepage = new lang_string('backup', 'moodle');
 | 
			
		||||
$PAGE->navbar->add($titlepage);
 | 
			
		||||
$PAGE->set_heading($titlepage);
 | 
			
		||||
$PAGE->set_title($titlepage);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										13
									
								
								settings.php
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								settings.php
									
									
									
									
									
								
							@@ -24,9 +24,14 @@
 | 
			
		||||
 | 
			
		||||
defined('MOODLE_INTERNAL') || die();
 | 
			
		||||
 | 
			
		||||
/** @var \admin_root $ADMIN */
 | 
			
		||||
 | 
			
		||||
if ($hassiteconfig) {
 | 
			
		||||
    $ADMIN->add("server", new admin_externalpage("local_webhooks",
 | 
			
		||||
        new lang_string("pluginname", "local_webhooks"),
 | 
			
		||||
        new moodle_url("/local/webhooks/index.php")
 | 
			
		||||
    ));
 | 
			
		||||
    $ADMIN->add(
 | 
			
		||||
        'server', new admin_externalpage(
 | 
			
		||||
            'local_webhooks',
 | 
			
		||||
            new lang_string('pluginname', 'local_webhooks'),
 | 
			
		||||
            new moodle_url('/local/webhooks/index.php')
 | 
			
		||||
        )
 | 
			
		||||
    );
 | 
			
		||||
}
 | 
			
		||||
@@ -24,8 +24,8 @@
 | 
			
		||||
 | 
			
		||||
defined('MOODLE_INTERNAL') || die();
 | 
			
		||||
 | 
			
		||||
$plugin->release   = "3.0.1 (Build: 2018061900)";
 | 
			
		||||
$plugin->release = '3.0.1 (Build: 2018061900)';
 | 
			
		||||
$plugin->version = 2018061900;
 | 
			
		||||
$plugin->requires = 2016112900;
 | 
			
		||||
$plugin->component = "local_webhooks";
 | 
			
		||||
$plugin->component = 'local_webhooks';
 | 
			
		||||
$plugin->maturity = MATURITY_STABLE;
 | 
			
		||||
		Reference in New Issue
	
	Block a user