<?php
namespace App\Controller;
use App\Form\ContactFormType;
use App\Model\Contact;
use App\Service\MailService;
use Exception;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
#[Route('/contact')]
class ContactController extends AbstractController
{
#[Route('/', name: 'app_contact_index')]
public function index(Request $request, MailService $mailService): Response
{
$contact = new Contact();
$form = $this->createForm(ContactFormType::class, $contact);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
try{
$contact = $form->getData();
$recipient = $this->getParameter('contact_recipient_mail');
if (!is_string($recipient) || trim($recipient) === '') {
throw new Exception('Environment variable not found: "CONTACT_RECIPIENT_MAIL"');
}
$mail = [
'to' => $recipient,
'subject' => "Nouveau contact de ".$contact->getName(),
'body' => $mailService->renderTwig('emails/contact.html.twig', ['contact' => $contact])
];
$mailService->sendMail($mail);
$this->addFlash('success', 'Message envoyé');
} catch(\Exception $ex){
$this->addFlash('danger', $ex->getMessage());
}
}
return $this->render('contact/contact_index.html.twig', [
'form' => $form->createView(),
'contact' => $contact
]);
}
}