<?php
namespace App\Controller\Front;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Session\Session;
use Doctrine\ORM\EntityManager;
use App\Service\Search;
use Karser\Recaptcha3Bundle\Validator\Constraints\Recaptcha3Validator;
class ContactController extends FrontController
{
/**
* @Route("/{_locale}/contact", name="contact_form")
*/
public function form(Request $request, \Doctrine\ORM\EntityManagerInterface $em, Session $session, \App\Service\Mailer $mailer, \Symfony\Contracts\Translation\TranslatorInterface $translator, Recaptcha3Validator $recaptcha3Validator)
{
$form = $this->createForm(\App\Form\ContactType::class, null, [
'translator' => $translator,
'entity_manager' => $em,
'attr' => [
'novalidate' => 'novalidate'
]
]);
if($request->isMethod('post')){
$form->handleRequest($request);
if($form->isSubmitted() && $form->isValid()){
$data = $form->getData();
// $score = $recaptcha3Validator->getLastResponse()->getScore();
try{
$mailer->sendContact($data);
$session->getFlashBag()->add('notice',$translator->trans('Vos informations ont bien été transmises.'));
return $this->redirectToRoute('contact_form');
}
catch (Exception $ex) {
$session->getFlashBag()->add('error',$translator->trans("Une erreur s'est produite."));
}
}
}
return $this->render('front/forms/contact.html.twig',[
'form' => $form->createView()
]);
}
/**
* @Route("/{_locale}/catalog", name="catalog_form")
*/
public function catalog(Request $request, \Doctrine\ORM\EntityManagerInterface $em, Session $session, \App\Service\Mailer $mailer, \Symfony\Contracts\Translation\TranslatorInterface $translator)
{
$form = $this->createForm(\App\Form\CatalogType::class, null, [
'translator' => $translator,
'attr' => [
'novalidate' => 'novalidate'
]
]);
if($request->isMethod('post')){
$form->handleRequest($request);
if($form->isSubmitted() && $form->isValid()){
$data = $form->getData();
try{
$mailer->sendCatalog($data);
$session->getFlashBag()->add('notice',$translator->trans('Vos informations ont bien été transmises.'));
return $this->redirectToRoute('catalog_form');
}
catch (Exception $ex) {
$session->getFlashBag()->add('error',$translator->trans("Une erreur s'est produite."));
}
}
}
return $this->render('front/forms/catalog.html.twig',[
'form' => $form->createView()
]);
}
}