From 5989abcab45fde45869863a9e7da553a9950aef5 Mon Sep 17 00:00:00 2001 From: RobinDev Date: Sat, 18 Nov 2023 19:05:13 +0100 Subject: [PATCH] send message notifier feature --- .../src/Service/NewMessageMailNotifier.php | 37 +++++++++++++----- packages/docs/content/roadmap.md | 2 +- packages/skeleton/var/app.db | Bin 77824 -> 77824 bytes 3 files changed, 29 insertions(+), 10 deletions(-) diff --git a/packages/conversation/src/Service/NewMessageMailNotifier.php b/packages/conversation/src/Service/NewMessageMailNotifier.php index 0d9a0fc41..96dc86dd7 100755 --- a/packages/conversation/src/Service/NewMessageMailNotifier.php +++ b/packages/conversation/src/Service/NewMessageMailNotifier.php @@ -49,7 +49,7 @@ public function __construct( */ protected function getMessagesPostedSince(\DateTimeInterface $datetime) { - $query = 'SELECT m FROM '.$this->message.' m WHERE m.host = :host AND m.createdAt > :lastNotificationTime'; + $query = 'SELECT m FROM '.$this->message.' m WHERE m.authorEmail IS NULL AND m.host = :host AND m.createdAt > :lastNotificationTime'; $query = $this->em->createQuery($query) ->setParameter('lastNotificationTime', $datetime, 'datetime') ->setParameter('host', $this->host); @@ -57,15 +57,36 @@ protected function getMessagesPostedSince(\DateTimeInterface $datetime) return $query->getResult(); // @phpstan-ignore-line } - public function postPersist(): void + public function postPersist(Message $message): void { - $this->send(); + if (null === $message->getAuthorEmail()) { + // $this->send(); + + return; + } + + $this->sendMessage($message); } - /** - * @return bool|void - */ - public function send() + public function sendMessage(Message $message): void + { + $authorEmail = $message->getAuthorEmail() ?? throw new \Exception(); + + $templatedEmail = (new TemplatedEmail()) + ->subject( + $this->translator->trans('admin.conversation.notification.title.singular', ['%appName%' => $this->appName]) + ) + ->from($this->emailFrom) + ->to($this->emailTo) + ->replyTo($authorEmail) + ->text($message->getContent() + ."\n\n---\n" + .'Envoyé depuis '.$message->getHost().' '.$message->getReferring()); + + $this->mailer->send($templatedEmail); + } + + public function send(): void { if ('' === $this->emailTo) { $this->logger->info('Not sending conversation notification : `conversation_notification_email_to` is not configured.'); @@ -106,7 +127,5 @@ public function send() $lastTime->set(); $this->mailer->send($templatedEmail); - - return true; } } diff --git a/packages/docs/content/roadmap.md b/packages/docs/content/roadmap.md index 7f12451c5..a5f2bb931 100755 --- a/packages/docs/content/roadmap.md +++ b/packages/docs/content/roadmap.md @@ -8,8 +8,8 @@ parent: contribute ## BugFix && To finish - [Core] https://github.com/jolicode/JoliTypo +- [Core/AdminBlockEditor] Related, RelatedToParent -- [Admin] Brouillon - [Admin] Block (left column) for viewing Page subtitle and navigate in the content - [Admin] Page : Code Editor for Autres paramêtres (yaml highlighting) - [Admin] Implements htmx ?! diff --git a/packages/skeleton/var/app.db b/packages/skeleton/var/app.db index 5e43dcdbe4ee41a9fb6eb847d8586f2eeaa9b684..510bc42c42a11d0ba98a3bba606fa4640d9da598 100644 GIT binary patch delta 201 zcmZp8z|!!5Wr8%L)s;Vq;tyirKgu7pvC)mczL1HVL0z3iRG&fJ*tjIMxWoZO=q2apqHyXN7#KhT zg{43uGe1w)z}VQpz$Dc&CqFqcCnF!IB_*}Y$iT>0*U(Vc&_cn`!pgwd%ES_jkR>BG S&@={7Q3hV)?HBnO^%VfPr8y%2 delta 71 zcmZp8z|!!5Wr8%L#zYxsMvaXL%jCJvF!0~tf5ZQX|IB7ZgFXB_TrAAeoVlsR#fj;u bn{VjrTwr75Kgz&=6ezo!fBR8>Mr#ECbbuHi