vendor/shopware/core/Content/Newsletter/Event/Subscriber/NewsletterRecipientDeletedSubscriber.php line 36

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Shopware\Core\Content\Newsletter\Event\Subscriber;
  3. use Shopware\Core\Content\Newsletter\DataAbstractionLayer\NewsletterRecipientIndexingMessage;
  4. use Shopware\Core\Content\Newsletter\NewsletterEvents;
  5. use Shopware\Core\Framework\DataAbstractionLayer\Event\EntityDeletedEvent;
  6. use Shopware\Core\Framework\Log\Package;
  7. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  8. use Symfony\Component\Messenger\MessageBusInterface;
  9. /**
  10. * @deprecated tag:v6.5.0 - reason:becomes-internal - EventSubscribers will become internal in v6.5.0
  11. */
  12. #[Package('customer-order')]
  13. class NewsletterRecipientDeletedSubscriber implements EventSubscriberInterface
  14. {
  15. private MessageBusInterface $messageBus;
  16. /**
  17. * @internal
  18. */
  19. public function __construct(MessageBusInterface $messageBus)
  20. {
  21. $this->messageBus = $messageBus;
  22. }
  23. /**
  24. * @return array<string, string|array{0: string, 1: int}|list<array{0: string, 1?: int}>>
  25. */
  26. public static function getSubscribedEvents()
  27. {
  28. return [NewsletterEvents::NEWSLETTER_RECIPIENT_DELETED_EVENT => 'onNewsletterRecipientDeleted'];
  29. }
  30. public function onNewsletterRecipientDeleted(EntityDeletedEvent $event): void
  31. {
  32. $message = new NewsletterRecipientIndexingMessage($event->getIds(), null, $event->getContext());
  33. $message->setDeletedNewsletterRecipients(true);
  34. $this->messageBus->dispatch($message);
  35. }
  36. }