src/Events/PrimeRequestEventSubscriber.php line 41

Open in your IDE?
  1. <?php
  2. namespace App\Events;
  3. use ApiPlatform\Core\EventListener\EventPriorities;
  4. use App\Entity\ChangeWaterBranch;
  5. use App\Entity\ProviderWaterIntervention;
  6. use App\Entity\ProviderWatterDelete;
  7. use App\Services\DompdfService;
  8. use App\Services\Pdf\ProviderWaterInterventionPdf;
  9. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\HttpKernel\Event\ViewEvent;
  12. use Symfony\Component\HttpKernel\KernelEvents;
  13. class PrimeRequestEventSubscriber implements EventSubscriberInterface
  14. {
  15.     /**
  16.      * @var DompdfService
  17.      */
  18.     private $dompdfService;
  19.     /**
  20.      * @var ProviderWaterInterventionPdf
  21.      */
  22.     private $providerWaterInterventionPdf;
  23.     /**
  24.      * @param DompdfService $dompdfService
  25.      * @param ProviderWaterInterventionPdf $providerWaterInterventionPdf
  26.      */
  27.     public function __construct(DompdfService $dompdfServiceProviderWaterInterventionPdf  $providerWaterInterventionPdf)
  28.     {
  29.         $this->dompdfService $dompdfService;
  30.         $this->providerWaterInterventionPdf $providerWaterInterventionPdf;
  31.     }
  32.     /**
  33.      * @param ViewEvent $event
  34.      * @return void
  35.      */
  36.     public function sendMail(ViewEvent $event)
  37.     {
  38.         $object  $event->getControllerResult();
  39.         $request $event->getRequest();
  40.         if ($object instanceof ChangeWaterBranch && $request->isMethod(Request::METHOD_POST)) {
  41.             $this->dompdfService->generatePdfChangeWaterBranch($object);
  42.         }
  43.         if ($object instanceof ProviderWatterDelete && $request->isMethod(Request::METHOD_POST)) {
  44.             $this->dompdfService->generatePdfProviderWatterDelete($object);
  45.         }
  46.         if ($object instanceof ProviderWaterIntervention && $request->isMethod(Request::METHOD_POST)) {
  47.             $this->providerWaterInterventionPdf->generatePdf($object"providerIntervention""pdf_provider_water_intervention_directory");
  48.         }
  49.     }
  50.     /**
  51.      * @return array<string, mixed>
  52.      */
  53.     public static function getSubscribedEvents(): array
  54.     {
  55.         return [
  56.             KernelEvents::VIEW => ['sendMail'EventPriorities::POST_WRITE]
  57.         ];
  58.     }
  59. }