src/Events/CreatePdfEnvironment.php line 68

Open in your IDE?
  1. <?php
  2. namespace App\Events;
  3. use App\Entity\EasyPermitForm2;
  4. use App\Services\DompdfService;
  5. use App\Services\TraitementUrl;
  6. use App\Services\TraitementImage;
  7. use App\Mybase\Services\Base\SBase;
  8. use App\Entity\PermitEnvironmentalForm;
  9. use Symfony\Component\HttpKernel\KernelEvents;
  10. use App\Services\Api\PermitEnvironmentalService;
  11. use Symfony\Component\HttpKernel\Event\ViewEvent;
  12. use ApiPlatform\Core\EventListener\EventPriorities;
  13. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  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.      * @param ViewEvent $event
  60.      * @return void
  61.      */
  62.     public function createPdf(ViewEvent $event)
  63.     {
  64.         $result $event->getControllerResult();
  65.         $method $event->getRequest()->getMethod();
  66.         $data $event->getRequest()->request->all();
  67.         if (($result instanceof PermitEnvironmentalForm || $result instanceof EasyPermitForm2) && $method === "POST") {
  68.             $class $result->getPermitClass();
  69.             $environmentRequestId $result->getEnvironmentRequest()->getId();
  70.             $data['images'] = $this->image->imageBase64EnvironmentForm();
  71.             $path '/uploads/environment/annexe/';
  72.             $annexFile = [];
  73.             foreach ($result->getAnnexePermit() as $annex) {
  74.                 $files $annex->getFiles();
  75.                 foreach ($files as $file) {
  76.                     $filename $file->getName();
  77.                     $annexFile[] = $path.$filename;
  78.                 }
  79.             }
  80.             if ($result instanceof PermitEnvironmentalForm) {
  81.                 $path = [$this->traitementUrl->getUrlServer() . $this->dompdfService->createPdfEnvironmentForm($result$data)];
  82.             } else {
  83.                 $path = [$this->traitementUrl->getUrlServer() . $this->dompdfService->createPdfEasyPermit2($result$data)];
  84.             }
  85.             $datas array_merge($path$annexFile);
  86.             $dataForMail = [
  87.                 "urlFile" => $data["urlFile"],
  88.                 "urlMini" => $data["urlMini"],
  89.                 "idTheProperty" => $data["theProperty"]
  90.             ];
  91.             $this->permitEnvironmentalService->sendAllMail($dataForMail);
  92.             $permit $result->setEnvironmentRequest($this->permitEnvironmentalService->dateGenerator($class$environmentRequestId));
  93.             $this->sBase->save($permit);
  94.             $event->setResponse($this->sBase->jsonResponseOkNoData($datas"create and send pdf success"));
  95.         }
  96.     }
  97. }