src/EventSubscriber/DevisSubscriber.php line 51

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use ApiPlatform\Core\Api\IriConverterInterface;
  4. use ApiPlatform\Core\EventListener\EventPriorities;
  5. use App\Entity\Client;
  6. use App\Entity\Colis;
  7. use App\Entity\Devis;
  8. use App\Entity\Settings;
  9. use App\Exception\EntiteNotFoundException;
  10. use App\Service\FileUploader;
  11. use App\Service\Utils;
  12. use Doctrine\Persistence\ManagerRegistry;
  13. use Symfony\Component\DependencyInjection\ContainerBuilder;
  14. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  15. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  16. use Symfony\Component\Filesystem\Filesystem;
  17. use Symfony\Component\HttpFoundation\Request;
  18. use Symfony\Component\HttpKernel\Event\ViewEvent;
  19. use Symfony\Component\HttpKernel\KernelEvents;
  20. use Twig\Environment;
  21. use Vich\UploaderBundle\Storage\StorageInterface;
  22. class DevisSubscriber implements EventSubscriberInterface
  23. {
  24.     private $mailer;
  25.     private $managerRegistry;
  26.     private $twigEngine;
  27.     public function __construct(\Swift_Mailer $mailer,ManagerRegistry $managerRegistry,Environment $engine)
  28.     {
  29.         $this->mailer $mailer;
  30.         $this->managerRegistry $managerRegistry;
  31.         $this->twigEngine $engine;
  32.     }
  33.     public static function getSubscribedEvents()
  34.     {
  35.         return [
  36.             KernelEvents::VIEW => [
  37.                 ['processDevisAdd'EventPriorities::POST_WRITE],
  38.             ],
  39.         ];
  40.     }
  41.     public function processDevisAdd(ViewEvent $event){
  42.         $devis $event->getControllerResult();
  43.         $method $event->getRequest()->getMethod();
  44.         if (!$devis instanceof Devis || Request::METHOD_POST !== $method) {
  45.             return ;
  46.         }
  47.         $parametre $this->managerRegistry->getRepository(Settings::class)->findAll();
  48.         if(count($parametre) !== 0){
  49.             $message = (new \Swift_Message('Demande de dévis'))
  50.             ->setFrom($devis->getEmail())
  51.             ->setTo($parametre[0]->getEmail() ? $parametre[0]->getEmail() : 'figux01@gmail.com')
  52.             ->setBody(
  53.                 $this->twigEngine->render(
  54.                 'emails/devis.html.twig',
  55.                  //   'emails/registration.html.twig',
  56.                     ['devis' => $devis]
  57.                 ),
  58.                 'text/html'
  59.             )
  60.             ->setBcc(['figux01@gmail.com']);
  61.         $this->mailer->send($message);
  62.         }
  63.     }
  64. }