PluginProbe
Hostinger Tools / 3.0.76
Hostinger Tools v3.0.76
3.0.77 3.0.76 3.0.75 3.0.74 3.0.73 3.0.72 3.0.71 3.0.70 3.0.69 3.0.68 3.0.67 3.0.66 1.8.1 1.8.2 1.8.3 1.9.1 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.4 All 108 releases
hostinger / includes / Admin / Jobs / NotifyMcpJob.php

NotifyMcpJob.php in Hostinger Tools 3.0.76, at includes/Admin/Jobs/NotifyMcpJob.php

51 lines 1.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Hostinger\Admin\Jobs;
4 use Hostinger\Mcp\EventHandlerFactory;
5 use Hostinger\Mcp\Handlers\EventHandler;
6 use PHPUnit\Exception;
7
8 class NotifyMcpJob extends AbstractJob implements JobInterface {
9
10 public const JOB_NAME = 'notify_mcp';
11
12 private EventHandlerFactory $event_handler_factory;
13
14 public function __construct( ActionScheduler $action_scheduler, EventHandlerFactory $event_handler_factory ) {
15 $this->event_handler_factory = $event_handler_factory;
16 parent::__construct( $action_scheduler );
17 }
18
19 public function get_name(): string {
20 return self::JOB_NAME;
21 }
22
23 public function event_handler( string $event ): EventHandler {
24 return $this->event_handler_factory->get_handler( $event );
25 }
26
27 public function process_items( array $args = array() ): void {
28 $handler = $this->event_handler( $args['event'] );
29 $handler->send( $args );
30 }
31
32 public function schedule( array $args = array() ): void {
33 if ( $this->can_schedule( $args ) ) {
34 $this->action_scheduler->schedule_immediate( $this->get_process_item_hook(), array( $args ) );
35 }
36 }
37
38 public function can_schedule( $args = array() ): bool {
39 if ( ! parent::can_schedule( $args ) ) {
40 return false;
41 }
42
43 try {
44 $handler = $this->event_handler( $args['event'] );
45 return $handler->can_send( $args );
46 } catch ( Exception $e ) {
47 return false;
48 }
49 }
50 }
51