Spaces:
No application file
No application file
| declare(strict_types=1); | |
| namespace Mautic\MessengerBundle\MessageHandler; | |
| use Doctrine\ORM\EntityManagerInterface; | |
| use Mautic\CoreBundle\Model\NotificationModel; | |
| use Mautic\MessengerBundle\Message\TestEmail; | |
| use Mautic\MessengerBundle\Message\TestFailed; | |
| use Mautic\MessengerBundle\Message\TestHit; | |
| use Mautic\UserBundle\Entity\User; | |
| use Symfony\Component\Messenger\Handler\MessageSubscriberInterface; | |
| use Symfony\Contracts\Translation\TranslatorInterface; | |
| /** | |
| * @deprecated since Mautic 5.0, to be removed in 6.0 with no replacement. | |
| */ | |
| class TestHandler implements MessageSubscriberInterface | |
| { | |
| public function __construct( | |
| private NotificationModel $notificationModel, | |
| private EntityManagerInterface $entityManager, | |
| private TranslatorInterface $translator, | |
| ) { | |
| } | |
| /** | |
| * @return iterable<class-string, array<string, string>> | |
| */ | |
| public static function getHandledMessages(): iterable | |
| { | |
| yield TestEmail::class => ['method' => 'handleEmail']; | |
| yield TestHit::class => ['method' => 'handleHit']; | |
| yield TestFailed::class => ['method' => 'handleFailed']; | |
| } | |
| public function handleEmail(TestEmail $message): void | |
| { | |
| $this->sendNotification($message->userId, 'email'); | |
| } | |
| public function handleHit(TestHit $message): void | |
| { | |
| $this->sendNotification($message->userId, 'hit'); | |
| } | |
| public function handleFailed(TestFailed $message): void | |
| { | |
| $this->sendNotification($message->userId, 'failed'); | |
| } | |
| private function sendNotification(int $userId, string $type): void | |
| { | |
| $this->notificationModel->addNotification( | |
| $this->translator->trans('mautic.messenger.config.dsn.test_message_processed', ['%type%' => $type]), | |
| null, | |
| false, | |
| null, | |
| null, | |
| null, | |
| $this->entityManager->getReference(User::class, $userId), | |
| ); | |
| } | |
| } | |