src/Action/ContactAction.php line 17

Open in your IDE?
  1. <?php
  2. declare(strict_types 1);
  3. namespace App\Action;
  4. use App\Domain\Repository\Interfaces\TextRepositoryInterface;
  5. use App\Form\Handler\ContactFormHandler;
  6. use App\Form\Type\ContactFormType;
  7. use App\Responder\RedirectResponder;
  8. use App\Responder\TemplateResponder;
  9. use Symfony\Component\Form\FormFactoryInterface;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. use Symfony\Contracts\HttpClient\HttpClientInterface;
  13. class ContactAction extends AbstractAction
  14. {
  15.     public function __construct(
  16.         TemplateResponder $templateResponder,
  17.         RedirectResponder $redirectResponder,
  18.         FormFactoryInterface $formFactory,
  19.         ContactFormHandler $contactFormHandler
  20.     )
  21.     {
  22.         $this->templateResponder $templateResponder;
  23.         $this->redirectResponder $redirectResponder;
  24.         $this->formFactory $formFactory;
  25.         $this->contactFormHandler $contactFormHandler;
  26.     }
  27.     /**
  28.      * @Route("/contact", name="contact")
  29.      */
  30.     public function __invoke(Request $request)
  31.     {
  32.         $contactType $this->formFactory
  33.             ->create(ContactFormType::class)
  34.             ->handleRequest($request);
  35.         if ($this->contactFormHandler->handle($contactType)) {
  36.             return $this->redirectResponder->__invoke('contact');
  37.         }
  38.         return $this->templateResponder->__invoke(
  39.             'contact.html.twig', [
  40.                 'form' => $contactType->createView()
  41.             ]
  42.         );
  43.     }
  44. }