src/PortoContainers/Zapier/EventSubscriber/OrderSubscriber.php line 64
<?phpnamespace App\PortoContainers\Zapier\EventSubscriber;use App\Event\OrderCreatedEvent;use App\Event\OrderRemovedEvent;use App\Event\OrderStatusChangedEvent;use App\PortoContainers\Global\DTO\OrderData;use App\PortoContainers\Zapier\Actions\RemoveOrderFromTriggersAction;use App\PortoContainers\Zapier\DTO\RemoveOrderFromTriggersData;use App\PortoContainers\Zapier\DTO\ZapierTriggerData;use App\PortoContainers\Zapier\Entities\ZapierTrigger;use Symfony\Component\EventDispatcher\EventSubscriberInterface;use App\PortoContainers\Zapier\Actions\AddTriggerAction;use App\PortoContainers\Zapier\Actions\IsOrderAcceptableForZapierAction;class OrderSubscriber implements EventSubscriberInterface{/*** @param AddTriggerAction $addTriggerAction* @param IsOrderAcceptableForZapierAction $isOrderAcceptableForZapierAction* @param RemoveOrderFromTriggersAction $removeOrderFromTriggersAction*/public function __construct(private readonly AddTriggerAction $addTriggerAction,private readonly IsOrderAcceptableForZapierAction $isOrderAcceptableForZapierAction,private readonly RemoveOrderFromTriggersAction $removeOrderFromTriggersAction){}/*** @return array*/public static function getSubscribedEvents(): array{return [OrderCreatedEvent::class => ['orderCreatedAction', -100],OrderStatusChangedEvent::class => ['orderStatusChangedAction', -100],OrderRemovedEvent::class => ['orderRemovedAction', -100]];}/*** @param OrderCreatedEvent $event* @return void* @throws \Exception*/public function orderCreatedAction(OrderCreatedEvent $event): void{$this->addTriggerAction->run(new ZapierTriggerData(ZapierTrigger::TRIGGER_ORDER_CREATED,$event->getOrder()->getId()));}/*** @param OrderStatusChangedEvent $event* @return void* @throws \Exception*/public function orderStatusChangedAction(OrderStatusChangedEvent $event): void{if ($this->isOrderAcceptableForZapierAction->run(new OrderData($event->getOrder()))) {$this->addTriggerAction->run(new ZapierTriggerData(ZapierTrigger::TRIGGER_ORDER_STATUS_UPDATED,$event->getOrder()->getId()));}}/*** @param OrderRemovedEvent $event* @return void* @throws \Exception*/public function orderRemovedAction(OrderRemovedEvent $event): void{$this->removeOrderFromTriggersAction->run(new RemoveOrderFromTriggersData($event->getOrder()));}}