src/EventSubscriber/RepairAppointmentSubscriber.php line 68

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use App\Event\CanceledRepairAppointmentEvent;
  4. use App\Event\CancelFreematicaRepairAppointmentEvent;
  5. use App\Event\CreatedRepairAppointmentEvent;
  6. use App\Event\InsertFreematicaRepairAppointmentEvent;
  7. use App\Event\UpdatedRepairAppointmentEvent;
  8. use App\Event\UpdateFreematicaRepairAppointmentEvent;
  9. use App\Service\MailService;
  10. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  11. use Symfony\Component\Mailer\Exception\TransportExceptionInterface;
  12. use Twig\Error\LoaderError;
  13. use Twig\Error\RuntimeError;
  14. use Twig\Error\SyntaxError;
  15. class RepairAppointmentSubscriber implements EventSubscriberInterface
  16. {
  17.     /** @var MailService $mailer */
  18.     private $mailer;
  19.     /**
  20.      * RepairAppointmentSubscriber constructor.
  21.      * @param MailService $mailer
  22.      */
  23.     public function __construct(MailService $mailer)
  24.     {
  25.         $this->mailer $mailer;
  26.     }
  27.     /**
  28.      * @return string[]
  29.      */
  30.     public static function getSubscribedEvents(): array
  31.     {
  32.         return [
  33.             CreatedRepairAppointmentEvent::class => 'onCreatedRepairAppointment',
  34.             UpdatedRepairAppointmentEvent::class => 'onUpdatedRepairAppointment',
  35.             CanceledRepairAppointmentEvent::class => 'onCanceledRepairAppointment',
  36.             InsertFreematicaRepairAppointmentEvent::class => 'onInsertFreematicaRepairAppointment',
  37.             UpdateFreematicaRepairAppointmentEvent::class => 'onUpdateFreematicaRepairAppointment',
  38.             CancelFreematicaRepairAppointmentEvent::class => 'onCancelFreematicaRepairAppointment',
  39.         ];
  40.     }
  41.     /**
  42.      * @param CreatedRepairAppointmentEvent $event
  43.      * @throws TransportExceptionInterface
  44.      * @throws LoaderError
  45.      * @throws RuntimeError
  46.      * @throws SyntaxError
  47.      */
  48.     public function onCreatedRepairAppointment(CreatedRepairAppointmentEvent $event)
  49.     {
  50.         $this->mailer->createdRepairAppointmentToAdmin($event->getRepairAppointment());
  51.     }
  52.     /**
  53.      * @param UpdatedRepairAppointmentEvent $event
  54.      * @throws LoaderError
  55.      * @throws RuntimeError
  56.      * @throws SyntaxError
  57.      * @throws TransportExceptionInterface
  58.      */
  59.     public function onUpdatedRepairAppointment(UpdatedRepairAppointmentEvent $event)
  60.     {
  61.         $this->mailer->updatedRepairAppointmentToAdmin($event->getRepairAppointment());
  62.     }
  63.     /**
  64.      * @param CanceledRepairAppointmentEvent $event
  65.      * @throws LoaderError
  66.      * @throws RuntimeError
  67.      * @throws SyntaxError
  68.      * @throws TransportExceptionInterface
  69.      */
  70.     public function onCanceledRepairAppointment(CanceledRepairAppointmentEvent $event)
  71.     {
  72.         $this->mailer->canceledRepairAppointmentToAdmin($event->getRepairAppointment());
  73.     }
  74.     /**
  75.      * @param InsertFreematicaRepairAppointmentEvent $event
  76.      * @throws LoaderError
  77.      * @throws RuntimeError
  78.      * @throws SyntaxError
  79.      * @throws TransportExceptionInterface
  80.      */
  81.     public function onInsertFreematicaRepairAppointment(InsertFreematicaRepairAppointmentEvent $event)
  82.     {
  83.         $this->mailer->insertFreematicaRepairAppointmentToCustomerSupport($event->getRepairAppointment());
  84.     }
  85.     /**
  86.      * @param UpdateFreematicaRepairAppointmentEvent $event
  87.      * @throws LoaderError
  88.      * @throws RuntimeError
  89.      * @throws SyntaxError
  90.      * @throws TransportExceptionInterface
  91.      */
  92.     public function onUpdateFreematicaRepairAppointment(UpdateFreematicaRepairAppointmentEvent $event)
  93.     {
  94.         $this->mailer->updateFreematicaRepairAppointmentToCustomerSupport($event->getRepairAppointment());
  95.     }
  96.     /**
  97.      * @param CancelFreematicaRepairAppointmentEvent $event
  98.      * @throws LoaderError
  99.      * @throws RuntimeError
  100.      * @throws SyntaxError
  101.      * @throws TransportExceptionInterface
  102.      */
  103.     public function onCancelFreematicaRepairAppointment(CancelFreematicaRepairAppointmentEvent $event)
  104.     {
  105.         $this->mailer->cancelFreematicaRepairAppointmentToCustomerSupport($event->getRepairAppointment());
  106.     }
  107. }