src/Controller/DefaultController.php line 19

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\PdfDocumentSignInfo;
  4. use App\Form\PdfDocumentEnterCodeType;
  5. use App\Repository\PdfDocumentRepository;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\Form\FormError;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. class DefaultController extends AbstractController
  12. {
  13.     /**
  14.      * @Route("/", name="app_index")
  15.      */
  16.     public function index(Request $requestPdfDocumentRepository $pdfDocumentRepository): Response
  17.     {
  18.         $form $this->createForm(PdfDocumentEnterCodeType::class);
  19.         $form->handleRequest($request);
  20.         if ($form->isSubmitted() && $form->isValid()) {
  21.             $code strtoupper($form->get('code')->getData());
  22.             $pdfDocument $pdfDocumentRepository->findLastByCode($code);
  23.             //dd($pdfDocument);
  24.             if (!$pdfDocument) {
  25.                 $form->addError(new FormError('Invalid code'));
  26.                 return $this->render(
  27.                     'default/index.html.twig',
  28.                     [
  29.                         'form' => $form->createView(),
  30.                     ]
  31.                 );
  32.             }
  33.             if ($pdfDocument->getCodeExpireAt() <= new \DateTime()) {
  34.                 $form->addError(new FormError('Code expired.'));
  35.                 return $this->render(
  36.                     'default/index.html.twig',
  37.                     [
  38.                         'form' => $form->createView(),
  39.                     ]
  40.                 );
  41.             }
  42.             return $this->redirectToRoute(
  43.                 'pdf_document_sign',
  44.                 [
  45.                     'hash' => $pdfDocument->getHash(),
  46.                     'type' => PdfDocumentSignInfo::CODE_TYPE
  47.                 ]
  48.             );
  49.         }
  50.         return $this->render(
  51.             'default/index.html.twig',
  52.             [
  53.                 'form' => $form->createView(),
  54.             ]
  55.         );
  56.     }
  57. }