Task handler from the list
Signed-off-by: Valentin Popov <info@valentineus.link>
This commit is contained in:
		
							
								
								
									
										62
									
								
								classes/task/process_events_task.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								classes/task/process_events_task.php
									
									
									
									
									
										Normal file
									
								
							| @@ -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(); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user