src/EventSubscriber/CreatePdfEnvironment.php line 67

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use ApiPlatform\Core\EventListener\EventPriorities;
  4. use App\Entity\EasyPermitForm2;
  5. use App\Entity\PermitEnvironmentalForm;
  6. use App\Mybase\Services\Base\SBase;
  7. use App\Service\Api\PermitEnvironmentalService;
  8. use App\Service\DompdfService;
  9. use App\Service\TraitementImage;
  10. use App\Service\TraitementUrl;
  11. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  12. use Symfony\Component\HttpKernel\Event\ViewEvent;
  13. use Symfony\Component\HttpKernel\KernelEvents;
  14. class CreatePdfEnvironment implements EventSubscriberInterface
  15. {
  16.     /**
  17.      * @var SBase
  18.      */
  19.     private $sBase;
  20.     /**
  21.      * @var TraitementImage
  22.      */
  23.     private $image;
  24.     /**
  25.      * @var TraitementUrl
  26.      */
  27.     private $traitementUrl;
  28.     /**
  29.      * @var DompdfService
  30.      */
  31.     private $dompdfService;
  32.     /**
  33.      * @var PermitEnvironmentalService
  34.      */
  35.     private $permitEnvironmentalService;
  36.     public function __construct(
  37.         SBase $sBase,
  38.         TraitementImage $image,
  39.         TraitementUrl $traitementUrl,
  40.         DompdfService $dompdfService,
  41.         PermitEnvironmentalService $permitEnvironmentalService
  42.     ) {
  43.         $this->sBase $sBase;
  44.         $this->image $image;
  45.         $this->traitementUrl $traitementUrl;
  46.         $this->dompdfService $dompdfService;
  47.         $this->permitEnvironmentalService $permitEnvironmentalService;
  48.     }
  49.     /**
  50.      * @return array<string, mixed>
  51.      */
  52.     public static function getSubscribedEvents(): array
  53.     {
  54.         return [
  55.             KernelEvents::VIEW => ['createPdf'EventPriorities::POST_WRITE],
  56.         ];
  57.     }
  58.     /**
  59.      * @return void
  60.      */
  61.     public function createPdf(ViewEvent $event)
  62.     {
  63.         $result $event->getControllerResult();
  64.         $method $event->getRequest()->getMethod();
  65.         $data $event->getRequest()->request->all();
  66.         if (($result instanceof PermitEnvironmentalForm || $result instanceof EasyPermitForm2) && $method === 'POST') {
  67.             $class $result->getPermitClass();
  68.             $environmentRequestId $result->getEnvironmentRequest()->getId();
  69.             $data['images'] = $this->image->imageBase64EnvironmentForm();
  70.             $path '/uploads/environment/annexe/';
  71.             $annexFile = [];
  72.             foreach ($result->getAnnexePermit() as $annex) {
  73.                 $files $annex->getFiles();
  74.                 foreach ($files as $file) {
  75.                     $filename $file->getName();
  76.                     $annexFile[] = $path.$filename;
  77.                 }
  78.             }
  79.             if ($result instanceof PermitEnvironmentalForm) {
  80.                 $path = [$this->traitementUrl->getUrlServer().$this->dompdfService->createPdfEnvironmentForm($result$data)];
  81.             } else {
  82.                 $path = [$this->traitementUrl->getUrlServer().$this->dompdfService->createPdfEasyPermit2($result$data)];
  83.             }
  84.             $datas array_merge($path$annexFile);
  85.             $dataForMail = [
  86.                 'urlFile' => $data['urlFile'],
  87.                 'urlMini' => $data['urlMini'],
  88.                 'idTheProperty' => $data['theProperty'],
  89.             ];
  90.             $this->permitEnvironmentalService->sendAllMail($dataForMail);
  91.             $permit $result->setEnvironmentRequest($this->permitEnvironmentalService->dateGenerator($class$environmentRequestId));
  92.             $this->sBase->save($permit);
  93.             $event->setResponse($this->sBase->jsonResponseOkNoData($datas'create and send pdf success'));
  94.         }
  95.     }
  96. }