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

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\WebhookReceivedEvent651;
  29. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\WebhookStatusReceived\WebhookReceivedAuthorizedEvent;
  30. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\WebhookStatusReceived\WebhookReceivedCancelledEvent;
  31. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\WebhookStatusReceived\WebhookReceivedChargebackEvent;
  32. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\WebhookStatusReceived\WebhookReceivedCompletedEvent;
  33. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\WebhookStatusReceived\WebhookReceivedExpiredEvent;
  34. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\WebhookStatusReceived\WebhookReceivedFailedEvent;
  35. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\WebhookStatusReceived\WebhookReceivedPaidEvent;
  36. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\WebhookStatusReceived\WebhookReceivedPartialRefundedEvent;
  37. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\WebhookStatusReceived\WebhookReceivedPendingEvent;
  38. use Kiener\MolliePayments\Compatibility\Bundles\FlowBuilder\Events\WebhookStatusReceived\WebhookReceivedRefundedEvent;
  39. use Kiener\MolliePayments\Compatibility\VersionCompare;
  40. use Shopware\Core\Framework\Event\BusinessEventCollector;
  41. use Shopware\Core\Framework\Event\BusinessEventCollectorEvent;
  42. use Shopware\Core\Framework\Event\BusinessEventDefinition;
  43. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  44. class BusinessEventCollectorSubscriber implements EventSubscriberInterface
  45. {
  46.     /**
  47.      * @var VersionCompare
  48.      */
  49.     private $versionCompare;
  50.     /**
  51.      * @var BusinessEventCollector
  52.      */
  53.     private $businessEventCollector;
  54.     /**
  55.      * @param string $shopwareVersion
  56.      * @param BusinessEventCollector $businessEventCollector
  57.      */
  58.     public function __construct(string $shopwareVersionBusinessEventCollector $businessEventCollector)
  59.     {
  60.         $this->versionCompare = new VersionCompare($shopwareVersion);
  61.         $this->businessEventCollector $businessEventCollector;
  62.     }
  63.     /**
  64.      * @return array<mixed>
  65.      */
  66.     public static function getSubscribedEvents()
  67.     {
  68.         return [
  69.             BusinessEventCollectorEvent::NAME => ['onAddEvent'1000],
  70.         ];
  71.     }
  72.     /**
  73.      * @param BusinessEventCollectorEvent $event
  74.      * @return void
  75.      */
  76.     public function onAddEvent(BusinessEventCollectorEvent $event): void
  77.     {
  78.         $collection $event->getCollection();
  79.         $events = [
  80.             WebhookReceivedPaidEvent::class,
  81.             WebhookReceivedFailedEvent::class,
  82.             WebhookReceivedExpiredEvent::class,
  83.             WebhookReceivedCancelledEvent::class,
  84.             WebhookReceivedPendingEvent::class,
  85.             WebhookReceivedCompletedEvent::class,
  86.             WebhookReceivedAuthorizedEvent::class,
  87.             WebhookReceivedChargebackEvent::class,
  88.             WebhookReceivedRefundedEvent::class,
  89.             WebhookReceivedPartialRefundedEvent::class,
  90.         ];
  91.         if ($this->versionCompare->gte('6.5.1.0')) {
  92.             # --------------------------------------------
  93.             $events[] = WebhookReceivedEvent651::class;
  94.             # --------------------------------------------
  95.             $events[] = OrderSuccessEvent651::class;
  96.             $events[] = OrderFailedEvent651::class;
  97.             $events[] = OrderCanceledEvent651::class;
  98.             # --------------------------------------------
  99.             $events[] = RefundStartedEvent651::class;
  100.             # --------------------------------------------
  101.             $events[] = SubscriptionRemindedEvent651::class;
  102.             $events[] = SubscriptionStartedEvent651::class;
  103.             $events[] = SubscriptionPausedEvent651::class;
  104.             $events[] = SubscriptionEndedEvent651::class;
  105.             $events[] = SubscriptionResumedEvent651::class;
  106.             $events[] = SubscriptionSkippedEvent651::class;
  107.             $events[] = SubscriptionCancelledEvent651::class;
  108.             $events[] = SubscriptionRenewedEvent651::class;
  109.         } else {
  110.             # --------------------------------------------
  111.             $events[] = WebhookReceivedEvent::class;
  112.             # --------------------------------------------
  113.             $events[] = OrderSuccessEvent::class;
  114.             $events[] = OrderFailedEvent::class;
  115.             $events[] = OrderCanceledEvent::class;
  116.             # --------------------------------------------
  117.             $events[] = RefundStartedEvent::class;
  118.             # --------------------------------------------
  119.             $events[] = SubscriptionRemindedEvent::class;
  120.             $events[] = SubscriptionStartedEvent::class;
  121.             $events[] = SubscriptionPausedEvent::class;
  122.             $events[] = SubscriptionEndedEvent::class;
  123.             $events[] = SubscriptionResumedEvent::class;
  124.             $events[] = SubscriptionSkippedEvent::class;
  125.             $events[] = SubscriptionCancelledEvent::class;
  126.             $events[] = SubscriptionRenewedEvent::class;
  127.         }
  128.         foreach ($events as $tmpEvent) {
  129.             /** @var BusinessEventDefinition $definition */
  130.             $definition $this->businessEventCollector->define($tmpEvent);
  131.             $collection->set($definition->getName(), $definition);
  132.         }
  133.     }
  134. }