← Back
Editing: MessageService.php
<?php namespace App\Service; use App\Entity\AgencyPrestataire; use App\Entity\Message; use Symfony\Bridge\Twig\Mime\TemplatedEmail; use Symfony\Component\Mailer\MailerInterface; class MessageService { private MailerInterface $mailer; private SolutionService $solutionService; public function __construct(MailerInterface $mailer, SolutionService $solutionService) { $this->mailer = $mailer; $this->solutionService = $solutionService; } public function notify(Message $message): void { $recipients = []; $firstname = $lastname = ''; // Notify manager if ($message->getProvider()) { $manager = $message->getService()->getControle()->getAdresse()->getManager(); if ($manager) { $recipients[] = $manager->getEmail(); $firstname = $manager->getPrenom(); $lastname = $manager->getNom(); } } // Notify provider if ($message->getUser()) { $provider = $message->getService()->getProviderContact(); $recipients[] = $provider->getMailContact(); $lastname = $provider->getNomContact(); $firstname = $provider->getPrenomContact(); } if ($message->getService()->getElevatorBreakdown()) { $agency = $message->getService()->getElevatorBreakdown()->getAdresse()->getAgency(); } else { $agency = $message->getService()->getControle()->getAdresse()->getAgency(); } if ($agency->getLogo()) { $logo = '@logos/'.$agency->getLogo(); } else { $logo = '@images/bot.png'; } $emailMessage = (new TemplatedEmail()) ->from($this->solutionService->getCurrent()->getEmail()) ->to(...$recipients) ->subject('Un nouveau message vous est parvenu') // path of the Twig template to render ->htmlTemplate('emails/new_message.html.twig') // pass variables (name => value) to the template ->context( [ 'logo' => $logo, 'hasProvider' => $message->getProvider() instanceof AgencyPrestataire, 'message' => $message->getMessage(), 'serviceId' => $message->getService()->getId(), 'serviceHash' => $message->getService()->getHash(), 'lastname' => $lastname, 'firstname' => $firstname, ] ); $this->mailer->send($emailMessage); } }
Save File
Cancel