src/Controller/Page/VRQuoteController.php line 70

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Page;
  3. use App\Entity\VRQuote;
  4. use App\Form\VRQuoteType;
  5. use App\Renderer\Page as PageRenderer;
  6. use App\Sender\VrQuoteSender;
  7. use App\Sendgrid\Mailer;
  8. use App\Templating\Decorator;
  9. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  10. use Symfony\Component\EventDispatcher\EventDispatcherInterface;
  11. use Symfony\Component\HttpFoundation\Request;
  12. use Symfony\Component\HttpFoundation\Response;
  13. use Symfony\Component\Routing\Annotation\Route;
  14. use Throwable;
  15. use Twig_Error_Loader;
  16. use Twig_Error_Runtime;
  17. use Twig_Error_Syntax;
  18. #[Route('/vrquote')]
  19. class VRQuoteController extends AbstractController
  20. {
  21.     /**
  22.      * @var EventDispatcherInterface
  23.      */
  24.     private $eventDispatcher;
  25.     /**
  26.      * @var PageRenderer
  27.      */
  28.     private $pageRenderer;
  29.     /**
  30.      * @var Decorator
  31.      */
  32.     private $decorator;
  33.     /**
  34.      * @var VrQuoteSender
  35.      */
  36.     private $sender;
  37.     /**
  38.      * @var Mailer
  39.      */
  40.     private $mailer;
  41.     public function __construct(
  42.         EventDispatcherInterface $eventDispatcher,
  43.         PageRenderer $pageRenderer,
  44.         Decorator $decorator,
  45.         VrQuoteSender $vrquoteSender,
  46.         Mailer $mailer,
  47.     ) {
  48.         $this->eventDispatcher $eventDispatcher;
  49.         $this->pageRenderer $pageRenderer;
  50.         $this->decorator $decorator;
  51.         $this->sender $vrquoteSender;
  52.         $this->mailer $mailer;
  53.     }
  54.     /**
  55.      * @throws Twig_Error_Loader
  56.      * @throws Twig_Error_Runtime
  57.      * @throws Twig_Error_Syntax
  58.      * @throws Throwable
  59.      */
  60.     #[Route(path'/'name'vrquote_form')]
  61.     public function indexAction(Request $request): Response
  62.     {
  63.         $vrquote = new VRQuote();
  64.         $form $this->createForm(VRQuoteType::class, $vrquote);
  65.         $form->handleRequest($request);
  66.         if ($form->isSubmitted()) {
  67.             if ($form->isValid()) {
  68.                 try {
  69.                     $em $this->getDoctrine()->getManager();
  70.                     $em->persist($vrquote);
  71.                     $em->flush();
  72.                     $this->sender->mailUser($vrquote);
  73.                     $this->sender->mailSiteOwner($vrquote);
  74.                     // ToDo: Hier nog ooit een setting van maken.
  75.                     return $this->redirect('offerte-aanvraag-bedankt');
  76.                 } catch (\Exception $exception) {
  77.                     echo $exception->getMessage();
  78.                 }
  79.             }
  80.         }
  81.         return $this
  82.             ->pageRenderer
  83.             ->renderPage(
  84.                 '{vrquote_form}',
  85.                 $this->decorator->getTemplate('pages/vrquote_form.html.twig'),
  86.                 [
  87.                     'vrquote' => $vrquote,
  88.                     'form' => $form->createView(),
  89.                     //            'show_privacy_statement_text' => ($this->getParameter('site_contact_privacy_statement_option')),
  90.                     //            'privacy_statement_text' => $this->getParameter('site_contact_privacy_statement_text')
  91.                 ]
  92.             );
  93.     }
  94. }