src/MailBundle/EventListener/Staff/NewStaffDocumentEventListener.php line 33

Open in your IDE?
  1. <?php
  2. namespace App\MailBundle\EventListener\Staff;
  3. use App\Entity\Staff\Role;
  4. use App\Entity\Staff\Staff;
  5. use App\Event\Staff\NewStaffDocumentEvent;
  6. use App\Exception\MissingEnvVariableException;
  7. use App\MailBundle\Entity\Mail;
  8. use App\MailBundle\EventListener\MailListener;
  9. use App\MailBundle\Exception\MissingTemplateException;
  10. use App\MailBundle\Service\MailSender;
  11. use App\Repository\StaffRepository;
  12. use App\Service\Tools;
  13. use Symfony\Component\Mailer\Exception\TransportExceptionInterface;
  14. use Symfony\Component\Security\Core\Role\RoleHierarchy;
  15. use Symfony\Component\Security\Core\Role\RoleHierarchyInterface;
  16. use Symfony\Contracts\EventDispatcher\Event;
  17. use Twig\Error\LoaderError;
  18. use Twig\Error\RuntimeError;
  19. use Twig\Error\SyntaxError;
  20. class NewStaffDocumentEventListener extends StaffListener
  21. {
  22.     /**
  23.      * @throws MissingTemplateException
  24.      * @throws SyntaxError
  25.      * @throws TransportExceptionInterface
  26.      * @throws RuntimeError
  27.      * @throws LoaderError
  28.      */
  29.     public function onNewStaffDocument(NewStaffDocumentEvent $event)
  30.     {
  31.         $data $this->getBaseTemplateData();
  32.         $data['button_url'] = $this->staffEditRoute $event->getToStaff()->getUuid();
  33.         $data['from'] = $event->getFromStaff()->getFullName();
  34.         $data['to'] = $event->getToStaff()->getFullname();
  35.         $data['nb_document'] = $event->getNbDocuments();
  36.         $mail = new Mail(
  37.             Mail::NEW_STAFF_DOCUMENT_TEMPLATE,
  38.             $this->getAdminEmails(),
  39.             $data
  40.         );
  41.         $this->mailSender->sendEmail($mail);
  42.     }
  43. }