<?php
namespace App\MailBundle\EventListener\Staff;
use App\Entity\Staff\Role;
use App\Entity\Staff\Staff;
use App\Event\Staff\NewStaffDocumentEvent;
use App\Exception\MissingEnvVariableException;
use App\MailBundle\Entity\Mail;
use App\MailBundle\EventListener\MailListener;
use App\MailBundle\Exception\MissingTemplateException;
use App\MailBundle\Service\MailSender;
use App\Repository\StaffRepository;
use App\Service\Tools;
use Symfony\Component\Mailer\Exception\TransportExceptionInterface;
use Symfony\Component\Security\Core\Role\RoleHierarchy;
use Symfony\Component\Security\Core\Role\RoleHierarchyInterface;
use Symfony\Contracts\EventDispatcher\Event;
use Twig\Error\LoaderError;
use Twig\Error\RuntimeError;
use Twig\Error\SyntaxError;
class NewStaffDocumentEventListener extends StaffListener
{
/**
* @throws MissingTemplateException
* @throws SyntaxError
* @throws TransportExceptionInterface
* @throws RuntimeError
* @throws LoaderError
*/
public function onNewStaffDocument(NewStaffDocumentEvent $event)
{
$data = $this->getBaseTemplateData();
$data['button_url'] = $this->staffEditRoute . $event->getToStaff()->getUuid();
$data['from'] = $event->getFromStaff()->getFullName();
$data['to'] = $event->getToStaff()->getFullname();
$data['nb_document'] = $event->getNbDocuments();
$mail = new Mail(
Mail::NEW_STAFF_DOCUMENT_TEMPLATE,
$this->getAdminEmails(),
$data
);
$this->mailSender->sendEmail($mail);
}
}