/**
* @Route("/contact", name="contact_route")
* @param Request $request
* @return \Symfony\Component\HttpFoundation\Response
*/
public function contactAction(Request $request)
{
/** @var AnonymousToken $token */
$token = $this->tokenStorage->getToken();
/** @var User $user */
$user = $token->getUser();
$contact = new Contact();
if ($user !== 'anon.') {
/** @var User $user */
$contact->setEmail($user->getEmail());
$contact->setUser($user);
}
$emailGetParam = $request->query->get('email');
if (!empty($emailGetParam)) {
$contact->setEmail($emailGetParam);
}
$form = $this->formFactory->createBuilder(FormType::class, $contact)->add('email', TextType::class, ['attr' => ['placeholder' => '*****@*****.**']])->add('message', TextareaType::class, ['attr' => ['maxlength' => 1000, 'rows' => 10]])->add('submit', SubmitType::class, ['label' => 'Envoyer'])->getForm();
$form->handleRequest($request);
if ($form->isValid()) {
$this->contactService->record($contact);
$this->session->getFlashBag()->add(static::FLASH_BAG_EMAIL, $contact->getEmail());
return new RedirectResponse($this->router->generate('confirmation_contact_route'));
} else {
return new Response($this->templating->render('base.html.twig', [TwigNodeTemplateTreeSection::TEMPLATE_TREE_BRANCH => 'contact', 'form' => $form->createView()]), $form->isSubmitted() ? Response::HTTP_BAD_REQUEST : Response::HTTP_OK);
}
}