src/EventSubscriber/PrimeRequestEventSubscriber.php line 36

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use ApiPlatform\Core\EventListener\EventPriorities;
  4. use App\Entity\ChangeWaterBranch;
  5. use App\Entity\ProviderWaterIntervention;
  6. use App\Entity\ProviderWatterDelete;
  7. use App\Service\DompdfService;
  8. use App\Service\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.     public function __construct(DompdfService $dompdfServiceProviderWaterInterventionPdf $providerWaterInterventionPdf)
  24.     {
  25.         $this->dompdfService $dompdfService;
  26.         $this->providerWaterInterventionPdf $providerWaterInterventionPdf;
  27.     }
  28.     /**
  29.      * @return void
  30.      */
  31.     public function sendMail(ViewEvent $event)
  32.     {
  33.         $object $event->getControllerResult();
  34.         $request $event->getRequest();
  35.         if ($object instanceof ChangeWaterBranch && $request->isMethod(Request::METHOD_POST)) {
  36.             $this->dompdfService->generatePdfChangeWaterBranch($object);
  37.         }
  38.         if ($object instanceof ProviderWatterDelete && $request->isMethod(Request::METHOD_POST)) {
  39.             $this->dompdfService->generatePdfProviderWatterDelete($object);
  40.         }
  41.         if ($object instanceof ProviderWaterIntervention && $request->isMethod(Request::METHOD_POST)) {
  42.             $this->providerWaterInterventionPdf->generatePdf($object'providerIntervention''pdf_provider_water_intervention_directory');
  43.         }
  44.     }
  45.     /**
  46.      * @return array<string, mixed>
  47.      */
  48.     public static function getSubscribedEvents(): array
  49.     {
  50.         return [
  51.             KernelEvents::VIEW => ['sendMail'EventPriorities::POST_WRITE],
  52.         ];
  53.     }
  54. }