custom/plugins/MolliePayments/src/Compatibility/Bundles/FlowBuilder/Subscriber/BusinessEventCollectorSubscriber.php line 84

Open in your IDE?
  1. <?php
  2. namespace Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Subscriber;
  3. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\Checkout\OrderCanceled\OrderCanceledEvent;
  4. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\Checkout\OrderCanceled\OrderCanceledEvent651;
  5. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\Checkout\OrderFailed\OrderFailedEvent;
  6. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\Checkout\OrderFailed\OrderFailedEvent651;
  7. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\Checkout\OrderSuccess\OrderSuccessEvent;
  8. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\Checkout\OrderSuccess\OrderSuccessEvent651;
  9. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\Refund\RefundStarted\RefundStartedEvent;
  10. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\Refund\RefundStarted\RefundStartedEvent651;
  11. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\Subscription\SubscriptionCancelled\SubscriptionCancelledEvent;
  12. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\Subscription\SubscriptionCancelled\SubscriptionCancelledEvent651;
  13. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\Subscription\SubscriptionEnded\SubscriptionEndedEvent;
  14. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\Subscription\SubscriptionEnded\SubscriptionEndedEvent651;
  15. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\Subscription\SubscriptionPaused\SubscriptionPausedEvent;
  16. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\Subscription\SubscriptionPaused\SubscriptionPausedEvent651;
  17. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\Subscription\SubscriptionReminded\SubscriptionRemindedEvent;
  18. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\Subscription\SubscriptionReminded\SubscriptionRemindedEvent651;
  19. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\Subscription\SubscriptionRenewed\SubscriptionRenewedEvent;
  20. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\Subscription\SubscriptionRenewed\SubscriptionRenewedEvent651;
  21. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\Subscription\SubscriptionResumed\SubscriptionResumedEvent;
  22. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\Subscription\SubscriptionResumed\SubscriptionResumedEvent651;
  23. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\Subscription\SubscriptionSkipped\SubscriptionSkippedEvent;
  24. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\Subscription\SubscriptionSkipped\SubscriptionSkippedEvent651;
  25. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\Subscription\SubscriptionStarted\SubscriptionStartedEvent;
  26. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\Subscription\SubscriptionStarted\SubscriptionStartedEvent651;
  27. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\WebhookReceivedEvent;
  28. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\WebhookStatusReceived\WebhookReceivedAuthorizedEvent;
  29. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\WebhookStatusReceived\WebhookReceivedCancelledEvent;
  30. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\WebhookStatusReceived\WebhookReceivedChargebackEvent;
  31. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\WebhookStatusReceived\WebhookReceivedCompletedEvent;
  32. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\WebhookStatusReceived\WebhookReceivedExpiredEvent;
  33. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\WebhookStatusReceived\WebhookReceivedFailedEvent;
  34. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\WebhookStatusReceived\WebhookReceivedPaidEvent;
  35. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\WebhookStatusReceived\WebhookReceivedPartialRefundedEvent;
  36. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\WebhookStatusReceived\WebhookReceivedPendingEvent;
  37. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\WebhookStatusReceived\WebhookReceivedRefundedEvent;
  38. use Kiener\MolliePayments\Compatibility\VersionCompare;
  39. use Shopware\Core\Framework\Event\BusinessEventCollector;
  40. use Shopware\Core\Framework\Event\BusinessEventCollectorEvent;
  41. use Shopware\Core\Framework\Event\BusinessEventDefinition;
  42. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  43. class BusinessEventCollectorSubscriber implements EventSubscriberInterface
  44. {
  45.     /**
  46.      * @var VersionCompare
  47.      */
  48.     private $versionCompare;
  49.     /**
  50.      * @var BusinessEventCollector
  51.      */
  52.     private $businessEventCollector;
  53.     /**
  54.      * @param string $shopwareVersion
  55.      * @param BusinessEventCollector $businessEventCollector
  56.      */
  57.     public function __construct(string $shopwareVersionBusinessEventCollector $businessEventCollector)
  58.     {
  59.         $this->versionCompare = new VersionCompare($shopwareVersion);
  60.         $this->businessEventCollector $businessEventCollector;
  61.     }
  62.     /**
  63.      * @return array<mixed>
  64.      */
  65.     public static function getSubscribedEvents()
  66.     {
  67.         return [
  68.             BusinessEventCollectorEvent::NAME => ['onAddEvent'1000],
  69.         ];
  70.     }
  71.     /**
  72.      * @param BusinessEventCollectorEvent $event
  73.      * @return void
  74.      */
  75.     public function onAddEvent(BusinessEventCollectorEvent $event): void
  76.     {
  77.         $collection $event->getCollection();
  78.         $events = [
  79.             # --------------------------------------------
  80.             WebhookReceivedEvent::class,
  81.             # --------------------------------------------
  82.             WebhookReceivedPaidEvent::class,
  83.             WebhookReceivedFailedEvent::class,
  84.             WebhookReceivedExpiredEvent::class,
  85.             WebhookReceivedCancelledEvent::class,
  86.             WebhookReceivedPendingEvent::class,
  87.             WebhookReceivedCompletedEvent::class,
  88.             WebhookReceivedAuthorizedEvent::class,
  89.             WebhookReceivedChargebackEvent::class,
  90.             WebhookReceivedRefundedEvent::class,
  91.             WebhookReceivedPartialRefundedEvent::class,
  92.         ];
  93.         if ($this->versionCompare->gte('6.5.1.0')) {
  94.             $events[] = OrderSuccessEvent651::class;
  95.             $events[] = OrderFailedEvent651::class;
  96.             $events[] = OrderCanceledEvent651::class;
  97.             # --------------------------------------------
  98.             $events[] = RefundStartedEvent651::class;
  99.             # --------------------------------------------
  100.             $events[] = SubscriptionRemindedEvent651::class;
  101.             $events[] = SubscriptionStartedEvent651::class;
  102.             $events[] = SubscriptionPausedEvent651::class;
  103.             $events[] = SubscriptionEndedEvent651::class;
  104.             $events[] = SubscriptionResumedEvent651::class;
  105.             $events[] = SubscriptionSkippedEvent651::class;
  106.             $events[] = SubscriptionCancelledEvent651::class;
  107.             $events[] = SubscriptionRenewedEvent651::class;
  108.         } else {
  109.             $events[] = OrderSuccessEvent::class;
  110.             $events[] = OrderFailedEvent::class;
  111.             $events[] = OrderCanceledEvent::class;
  112.             # --------------------------------------------
  113.             $events[] = RefundStartedEvent::class;
  114.             # --------------------------------------------
  115.             $events[] = SubscriptionRemindedEvent::class;
  116.             $events[] = SubscriptionStartedEvent::class;
  117.             $events[] = SubscriptionPausedEvent::class;
  118.             $events[] = SubscriptionEndedEvent::class;
  119.             $events[] = SubscriptionResumedEvent::class;
  120.             $events[] = SubscriptionSkippedEvent::class;
  121.             $events[] = SubscriptionCancelledEvent::class;
  122.             $events[] = SubscriptionRenewedEvent::class;
  123.         }
  124.         foreach ($events as $tmpEvent) {
  125.             /** @var BusinessEventDefinition $definition */
  126.             $definition $this->businessEventCollector->define($tmpEvent);
  127.             $collection->set($definition->getName(), $definition);
  128.         }
  129.     }
  130. }