<?php
namespace App\Controller\Documents;
use App\Entity\Documents\DocValValidationRequest;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Vich\UploaderBundle\Storage\StorageInterface;
use Symfony\Contracts\Translation\TranslatorInterface;
/**
* [Web page controller]
*
* Listing and managing documents
*/
#[Route(path: '/validatedocument')]
class DisplayDocumentController extends AbstractController {
/**
* Web page showing document for validation
*/
#[Route(path: '/1/validate/{id}', name: 'document_show_for_validation', methods: ['GET'])]
public function showForValidation(DocValValidationRequest $validationRequest, StorageInterface $storage): Response {
if (in_array($validationRequest->clientState->key, ["validated", "confirmed"])){
return $this->redirectToRoute("validation_success", ["id" => $validationRequest->getId()]);
}
return $this->render('documents/show_for_validation.html.twig', [
'document_html' => $validationRequest->htmlDocument,
'pdf_url' => $validationRequest->pdfDocument->s3Url ?? '',
'validation_request' => $validationRequest,
'validation_request_raw' => json_encode($validationRequest),
'validation_request_id' => json_encode($validationRequest->getId()),
]);
}
/**
* Web page showing validated document
*/
#[Route(path: '/1/pdf/{id}', name: 'document_get_validated', methods: ['GET'])]
public function redirectToSignedDoc(DocValValidationRequest $validationRequest): Response {
return $this->redirect($validationRequest->validatedUrl);
}
/**
* Web page showing document for validation
*/
#[Route(path: '/validate_success/{id}', name: 'validation_success', methods: ['GET'])]
public function showForValidationSuccess(DocValValidationRequest $validationRequest, TranslatorInterface $translator): Response {
return $this->render('documents/validation_success.html.twig', []);
}
}