src/EventSubscriber/FactureEventSubscriber.php line 58

Open in your IDE?
  1. <?php
  2.     namespace App\EventSubscriber;
  3.     /* 
  4.     bin/stripe listen --forward-to localhost:4242/cultureroute/public/stripe/webhook
  5.     */
  6.     use App\Event\FactureEvent;
  7.     use App\Event\OrderEvent;
  8.     use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  9.     use Psr\Log\LoggerInterface;
  10.     use App\Cacher\ShopFactureCacher;
  11.     use Doctrine\ORM\EntityManagerInterface;
  12. use Symfony\Bridge\Twig\Mime\TemplatedEmail;
  13. use Symfony\Component\Mailer\MailerInterface;
  14.     class FactureEventSubscriber implements EventSubscriberInterface
  15.     {
  16.         private $entityManager;
  17.         private $logger;
  18.         public function __construct(LoggerInterface $lifecycleLoggerEntityManagerInterface $entityManagerMailerInterface $mailer)
  19.         {
  20.             $this->logger $lifecycleLogger;
  21.             $this->entityManager $entityManager;
  22.             $this->mailer $mailer;
  23.         }
  24.         public static function getSubscribedEvents() : array
  25.         {
  26.             return [
  27.                 FactureEvent::CREATED => 'onFactureCreated',
  28.                 FactureEvent::UPDATED => 'onFactureUpdated',
  29.                 FactureEvent::VALIDATED => 'onFactureValidated',
  30.                 FactureEvent::DELETED => 'onFactureDeleted',
  31.             ];
  32.         }
  33.        
  34.         public function onFactureCreated(FactureEvent $event)
  35.         {
  36.             $Facture $event->getFacture();
  37.             // Log the event
  38.             $this->logger->info(FactureEvent::CREATED, [
  39.                 'facture'=>$Facture->getId(),
  40.             ]);
  41.             // $this->cacher->delete($Facture);
  42.         }
  43.         public function onFactureUpdated(FactureEvent $event)
  44.         {
  45.             $Facture $event->getFacture();
  46.             // Log the event
  47.             $this->logger->info(FactureEvent::UPDATED, [
  48.                 'facture'=>$Facture->getId(),
  49.             ]);
  50.             // $this->cacher->delete($Facture);
  51.         }
  52.         public function onFactureValidated(FactureEvent $event)
  53.         {
  54.             $Facture $event->getFacture();
  55.             // Log the event
  56.             $this->logger->info(FactureEvent::VALIDATED, [
  57.                 'facture'=>$Facture->getId(),
  58.             ]);
  59.             // $this->cacher->delete($Facture);
  60.             
  61.             $this->mailer->send((new TemplatedEmail())
  62.             // ->to('gabriel@pyreweb.com')
  63.             // ->to($prof->getEMail())
  64.             ->subject('Facturation validée')
  65.             ->htmlTemplate('enseignant/mail/facturation.html.twig')
  66.             ->context([
  67.                 'facture'=>$Facture,
  68.             ]));
  69.         }
  70.         public function onFactureDeleted(FactureEvent $event)
  71.         {
  72.             $Facture $event->getFacture();
  73.             // Log the event
  74.             $this->logger->info(FactureEvent::DELETED, [
  75.                 'facture'=>$Facture->getId(),
  76.             ]);
  77.             // $this->cacher->delete($Facture);
  78.         }
  79.     }