src/Aqarmap/Bundle/ListingBundle/EventListener/LeadDuplicateSubscriber.php line 21

Open in your IDE?
  1. <?php
  2. namespace Aqarmap\Bundle\ListingBundle\EventListener;
  3. use Aqarmap\Bundle\ListingBundle\Event\LeadEvent;
  4. use Aqarmap\Bundle\ListingBundle\Repository\ListingLeadRepository;
  5. use Doctrine\ORM\EntityManagerInterface;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. class LeadDuplicateSubscriber implements EventSubscriberInterface
  8. {
  9.     protected $listingLeadRepository;
  10.     protected $entityManager;
  11.     public function __construct(ListingLeadRepository $listingLeadRepositoryEntityManagerInterface $entityManager)
  12.     {
  13.         $this->listingLeadRepository $listingLeadRepository;
  14.         $this->entityManager $entityManager;
  15.     }
  16.     public function handleDuplicateLead(LeadEvent $event): void
  17.     {
  18.         $lead $event->getLead();
  19.         $criteria = [
  20.             'user' => $event->getUser(),
  21.             'listing' => $lead->getListing(),
  22.         ];
  23.         $lead->setIsDuplicate($this->listingLeadRepository->isDuplicated($criteria));
  24.         $this->entityManager->persist($lead);
  25.         $this->entityManager->flush();
  26.     }
  27.     public static function getSubscribedEvents()
  28.     {
  29.         return [
  30.             'aqarmap.listing.lead.add' => [
  31.                 ['handleDuplicateLead'],
  32.             ],
  33.         ];
  34.     }
  35. }