<?php
namespace App\Controller;
use App\Entity\PdfDocumentSignInfo;
use App\Form\PdfDocumentEnterCodeType;
use App\Repository\PdfDocumentRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Form\FormError;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class DefaultController extends AbstractController
{
/**
* @Route("/", name="app_index")
*/
public function index(Request $request, PdfDocumentRepository $pdfDocumentRepository): Response
{
$form = $this->createForm(PdfDocumentEnterCodeType::class);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$code = strtoupper($form->get('code')->getData());
$pdfDocument = $pdfDocumentRepository->findLastByCode($code);
//dd($pdfDocument);
if (!$pdfDocument) {
$form->addError(new FormError('Invalid code'));
return $this->render(
'default/index.html.twig',
[
'form' => $form->createView(),
]
);
}
if ($pdfDocument->getCodeExpireAt() <= new \DateTime()) {
$form->addError(new FormError('Code expired.'));
return $this->render(
'default/index.html.twig',
[
'form' => $form->createView(),
]
);
}
return $this->redirectToRoute(
'pdf_document_sign',
[
'hash' => $pdfDocument->getHash(),
'type' => PdfDocumentSignInfo::CODE_TYPE
]
);
}
return $this->render(
'default/index.html.twig',
[
'form' => $form->createView(),
]
);
}
}