src/Controller/Documents/DisplayDocumentController.php line 23

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Documents;
  3. use App\Entity\Documents\DocValValidationRequest;
  4. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  5. use Symfony\Component\HttpFoundation\Response;
  6. use Symfony\Component\Routing\Annotation\Route;
  7. use Vich\UploaderBundle\Storage\StorageInterface;
  8. use Symfony\Contracts\Translation\TranslatorInterface;
  9. /**
  10.  * [Web page controller]
  11.  *
  12.  * Listing and managing documents
  13.  */
  14. #[Route(path'/validatedocument')]
  15. class DisplayDocumentController extends AbstractController {
  16.     /**
  17.      * Web page showing document for validation
  18.      */
  19.     #[Route(path'/1/validate/{id}'name'document_show_for_validation'methods: ['GET'])]
  20.     public function showForValidation(DocValValidationRequest $validationRequestStorageInterface $storage): Response {
  21.         if (in_array($validationRequest->clientState->key, ["validated""confirmed"])){
  22.             return $this->redirectToRoute("validation_success", ["id" => $validationRequest->getId()]);
  23.         }
  24.         return $this->render('documents/show_for_validation.html.twig', [
  25.             'document_html' => $validationRequest->htmlDocument,
  26.             'pdf_url' => $validationRequest->pdfDocument->s3Url ?? '',
  27.             'validation_request' => $validationRequest,
  28.             'validation_request_raw' => json_encode($validationRequest),
  29.             'validation_request_id' => json_encode($validationRequest->getId()),
  30.         ]);
  31.     }
  32.     /**
  33.      * Web page showing validated document
  34.      */
  35.     #[Route(path'/1/pdf/{id}'name'document_get_validated'methods: ['GET'])]
  36.     public function redirectToSignedDoc(DocValValidationRequest $validationRequest): Response {
  37.         return $this->redirect($validationRequest->validatedUrl);
  38.     }
  39.     /**
  40.      * Web page showing document for validation
  41.      */
  42.     #[Route(path'/validate_success/{id}'name'validation_success'methods: ['GET'])]
  43.     public function showForValidationSuccess(DocValValidationRequest $validationRequestTranslatorInterface $translator): Response {
  44.         return $this->render('documents/validation_success.html.twig', []);
  45.     }
  46. }