diff options
author | Valentin Popov <info@valentineus.link> | 2018-09-09 02:23:12 +0300 |
---|---|---|
committer | Valentin Popov <info@valentineus.link> | 2018-09-09 02:23:12 +0300 |
commit | 2194bc4a019fcc1de191c76ab8a905b04b029292 (patch) | |
tree | d44b5c17dbd2e6e3d51c6eb40aa1ed080c26dd5d /classes/event_observer.php | |
parent | 5884a58f544300f6674dc5bdcadfc16e8109749e (diff) | |
download | local_webhooks-2194bc4a019fcc1de191c76ab8a905b04b029292.tar.xz local_webhooks-2194bc4a019fcc1de191c76ab8a905b04b029292.zip |
Refactoring the event handler
Event processing is asynchronous. For asynchronous processing, events
are added to the job queue.
Signed-off-by: Valentin Popov <info@valentineus.link>
Diffstat (limited to 'classes/event_observer.php')
-rw-r--r-- | classes/event_observer.php | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/classes/event_observer.php b/classes/event_observer.php new file mode 100644 index 0000000..9ab4a35 --- /dev/null +++ b/classes/event_observer.php @@ -0,0 +1,48 @@ +<?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/>. + +/** + * Handlers of observers for events. + * + * @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; + +defined( "MOODLE_INTERNAL" ) || die(); + +/** + * Defines event handlers. + * + * @copyright 2018 'Valentin Popov' <info@valentineus.link> + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + * @package local_webhooks + */ +class event_observer { + /** + * Handler of all the events. + * Each event is put into the job queue. + * + * @param object $event + */ + public static function observe_all( $event ) { + $task = new \local_webhooks\task\process_events_task(); + $task->set_custom_data( $event->get_data() ); + \core\task\manager::queue_adhoc_task( $task ); + } +}
\ No newline at end of file |