src/EventSubscriber/Onboarding/LeadPreWriteSubscriber.php line 30

Open in your IDE?
  1. <?php
  2. /**
  3.  * Created by PhpStorm.
  4.  * User: sebastiantovar
  5.  * Date: 2019-06-26
  6.  * Time: 09:18
  7.  */
  8. namespace App\EventSubscriber\Onboarding;
  9. use ApiPlatform\Core\EventListener\EventPriorities;
  10. use App\Entity\Onboarding\Lead;
  11. use App\Services\UtilsService;
  12. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  13. use Symfony\Component\HttpFoundation\Request;
  14. use Symfony\Component\HttpKernel\Event\ViewEvent;
  15. use Symfony\Component\HttpKernel\KernelEvents;
  16. class LeadPreWriteSubscriber implements EventSubscriberInterface
  17. {
  18.     private $utilsService;
  19.     private $request;
  20.     public function __construct(UtilsService $utilsService)
  21.     {
  22.         $this->utilsService $utilsService;
  23.     }
  24.     public function onKernelView(ViewEvent $event)
  25.     {
  26.         if ($this->utilsService->isAPublicRequest($event)) {
  27.             return;
  28.         }
  29.         $lead $event->getControllerResult();
  30.         $this->request $event->getRequest();
  31.         $method $this->request->getMethod();
  32.         if (!($lead instanceof Lead) || (Request::METHOD_POST !== $method)) {
  33.             return;
  34.         }
  35.         $lead->setId(md5(uniqid()) . '-' time());
  36.     }
  37.     public static function getSubscribedEvents()
  38.     {
  39.         return [
  40.             KernelEvents::VIEW => ['onKernelView'EventPriorities::PRE_WRITE]
  41.         ];
  42.     }
  43. }