diff options
-rw-r--r-- | classes/event_observer.php (renamed from classes/handler.php) | 33 | ||||
-rw-r--r-- | db/events.php | 15 |
2 files changed, 19 insertions, 29 deletions
diff --git a/classes/handler.php b/classes/event_observer.php index 3bc69cf..9ab4a35 100644 --- a/classes/handler.php +++ b/classes/event_observer.php @@ -15,41 +15,34 @@ // along with Moodle. If not, see <http://www.gnu.org/licenses/>. /** - * The event handler. + * Handlers of observers for events. * - * @package local_webhooks - * @copyright 2017 "Valentin Popov" <info@valentineus.link> + * @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(); - -require_once(__DIR__ . "/../lib.php"); +defined( "MOODLE_INTERNAL" ) || die(); /** * Defines event handlers. * - * @copyright 2017 "Valentin Popov" <info@valentineus.link> + * @copyright 2018 'Valentin Popov' <info@valentineus.link> * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + * @package local_webhooks */ -class handler { +class event_observer { /** - * External handler. + * Handler of all the events. + * Each event is put into the job queue. * * @param object $event */ - public static function events($event) { - /* Gets the information about the event */ - $data = $event->get_data(); - - /* Gets a list of involved services */ - if (!empty($records = local_webhooks_get_list_records_by_event($data["eventname"]))) { - foreach ($records as $record) { - /* Sends an alert */ - local_webhooks_send_request($data, $record); - } - } + 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 diff --git a/db/events.php b/db/events.php index a2313c2..9fdf7d4 100644 --- a/db/events.php +++ b/db/events.php @@ -15,21 +15,18 @@ // along with Moodle. If not, see <http://www.gnu.org/licenses/>. /** - * Interception of all events in the system. + * Registration of observers for events. * - * @package local_webhooks - * @copyright 2017 "Valentin Popov" <info@valentineus.link> + * @copyright 2018 'Valentin Popov' <info@valentineus.link> * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + * @package local_webhooks */ -defined("MOODLE_INTERNAL") || die(); +defined( "MOODLE_INTERNAL" ) || die(); $observers = array( array( - "callback" => "\local_webhooks\\handler::events", - "eventname" => "*", - "includefile" => null, - "internal" => true, - "priority" => 200 + "callback" => "\local_webhooks\\event_observer::observe_all", + "eventname" => "*" ) );
\ No newline at end of file |