diff options
-rw-r--r-- | classes/task/process_events_task.php | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/classes/task/process_events_task.php b/classes/task/process_events_task.php new file mode 100644 index 0000000..d2d1ca9 --- /dev/null +++ b/classes/task/process_events_task.php @@ -0,0 +1,62 @@ +<?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/>. + +/** + * Defining task handlers. + * + * @copyright 2018 'Valentin Popov' <info@valentineus.link> + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + * @package local_webhooks + */ + +namespace local_webhooks\task; + +defined( "MOODLE_INTERNAL" ) || die(); + +/** + * Class process_events_task + * + * @copyright 2018 'Valentin Popov' <info@valentineus.link> + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + * @package local_webhooks\task + */ +class process_events_task extends \core\task\adhoc_task { + /** + * Task handler. + */ + public function execute() { + global $CFG; + + require_once( $CFG->dirroot . "/local/webhooks/lib.php" ); + + $services = \local_webhooks_api::get_services_by_event( $this->get_custom_data()->eventname ); + + foreach ( $services as $service ) { + if ( !empty( $service->status ) ) { + $curl = new \curl(); + + $event = (array) $this->get_custom_data(); + $event[ "token" ] = $service->token; + + $curl->setHeader( array( "Content-Type: " . $service->header ) ); + $curl->post( $service->point, json_encode( $event ) ); + + // TODO: Mark the log + $curl->getResponse(); + } + } + } +}
\ No newline at end of file |