Internal: Remove MessageListener and MessageHandler - refs BT#21613

pull/5462/head
Angel Fernando Quiroz Campos 1 year ago
parent 16f5645a96
commit 3b7125afd9
  1. 35
      src/CoreBundle/Entity/Listener/MessageListener.php
  2. 2
      src/CoreBundle/Entity/Message.php
  3. 62
      src/CoreBundle/MessageHandler/MessageHandler.php
  4. 4
      src/CoreBundle/Resources/config/listeners.yml

@ -1,35 +0,0 @@
<?php
declare(strict_types=1);
/* For licensing terms, see /license.txt */
namespace Chamilo\CoreBundle\Entity\Listener;
use Chamilo\CoreBundle\Entity\Message;
use Doctrine\ORM\Event\PostPersistEventArgs;
use Symfony\Component\Messenger\MessageBusInterface;
class MessageListener
{
public function __construct(
private MessageBusInterface $bus
) {}
public function postPersist(Message $message, PostPersistEventArgs $args): void
{
if ($message) {
// Creates an outbox version, if message is sent in the inbox.
if (Message::MESSAGE_TYPE_INBOX === $message->getMsgType()) {
/*$messageSent = clone $message;
$messageSent
->setMsgType(Message::MESSAGE_TYPE_OUTBOX)
->setRead(true)
->setReceivers(null)
;
$args->getEntityManager()->persist($messageSent);
$args->getEntityManager()->flush();*/
}
}
}
}

@ -16,7 +16,6 @@ use ApiPlatform\Metadata\Get;
use ApiPlatform\Metadata\GetCollection;
use ApiPlatform\Metadata\Post;
use ApiPlatform\Metadata\Put;
use Chamilo\CoreBundle\Entity\Listener\MessageListener;
use Chamilo\CoreBundle\Repository\MessageRepository;
use Chamilo\CoreBundle\State\MessageByGroupStateProvider;
use DateTime;
@ -33,7 +32,6 @@ use Symfony\Component\Validator\Constraints as Assert;
#[ORM\Index(columns: ['group_id'], name: 'idx_message_group')]
#[ORM\Index(columns: ['msg_type'], name: 'idx_message_type')]
#[ORM\Entity(repositoryClass: MessageRepository::class)]
#[ORM\EntityListeners([MessageListener::class])]
#[ApiResource(
operations: [
new Get(security: "is_granted('VIEW', object)"),

@ -1,62 +0,0 @@
<?php
declare(strict_types=1);
/* For licensing terms, see /license.txt */
namespace Chamilo\CoreBundle\MessageHandler;
use Chamilo\CoreBundle\Entity\Message;
use Chamilo\CoreBundle\Entity\MessageRelUser;
use Symfony\Bridge\Twig\Mime\TemplatedEmail;
use Symfony\Component\Mailer\Exception\TransportExceptionInterface;
use Symfony\Component\Mailer\Mailer;
use Symfony\Component\Messenger\Attribute\AsMessageHandler;
use Symfony\Component\Mime\Address;
#[AsMessageHandler]
class MessageHandler
{
public function __construct(
private readonly Mailer $mailer
) {}
public function __invoke(Message $message): void
{
if (Message::MESSAGE_TYPE_INBOX !== $message->getMsgType()) {
// Only send messages to the inbox.
return;
}
$email = (new TemplatedEmail())
->subject($message->getTitle())
->from(new Address($message->getSender()->getEmail(), $message->getSender()->getFirstname()))
->htmlTemplate('@ChamiloCore/Mailer/Default/default.html.twig')
->textTemplate('@ChamiloCore/Mailer/Default/default.text.twig')
;
foreach ($message->getReceivers() as $messageRelUser) {
$receiver = $messageRelUser->getReceiver();
$address = new Address($receiver->getEmail(), $receiver->getFirstname());
if (MessageRelUser::TYPE_TO === $messageRelUser->getReceiverType()) {
$email->addTo($address);
} elseif (MessageRelUser::TYPE_CC === $messageRelUser->getReceiverType()) {
$email->addBcc($address);
}
}
$params = [
'content' => $message->getContent(),
'automatic_email_text' => '',
'mail_header_style' => '',
'mail_content_style' => '',
'theme' => '',
];
$email->context($params);
try {
$this->mailer->send($email);
} catch (TransportExceptionInterface $e) {
error_log('MessageHandler exception: '.$e->getMessage());
}
}
}

@ -94,10 +94,6 @@ services:
tags:
- {name: doctrine.orm.entity_listener, entity_manager: default, lazy: true}
Chamilo\CoreBundle\Entity\Listener\MessageListener:
tags:
- {name: doctrine.orm.entity_listener, entity_manager: default, lazy: true}
Chamilo\CoreBundle\Entity\Listener\SkillRelUserListener:
arguments:
- '@Chamilo\CoreBundle\Settings\SettingsManager'

Loading…
Cancel
Save