src/EventSubscriber/JobSubscriber.php line 49

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use App\Entity\Job;
  4. use App\Event\Job\JobCreatedEvent;
  5. use App\Event\Job\JobDeletedEvent;
  6. use App\Event\Job\JobUpdatedEvent;
  7. use App\Service\FrontAPIService;
  8. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  9. class JobSubscriber implements EventSubscriberInterface
  10. {
  11.     public function __construct(
  12.         private FrontAPIService $frontAPIService,
  13.     ){}
  14.     public static function getSubscribedEvents()
  15.     {
  16.         return [
  17.             JobCreatedEvent::NAME => 'onJobCreated',
  18.             JobUpdatedEvent::NAME => 'onJobUpdated',
  19.             JobDeletedEvent::NAME => 'onJobDeleted',
  20.         ];
  21.     }
  22.     public function onJobCreated(JobCreatedEvent $event): void
  23.     {
  24.         $job $event->getJob();
  25.         if (!$job instanceof Job) {
  26.             return;
  27.         }
  28.         $this->frontAPIService->createJobOnFront($job);
  29.     }
  30.     public function onJobUpdated(JobUpdatedEvent $event): void
  31.     {
  32.         $job $event->getJob();
  33.         if (!$job instanceof Job) {
  34.             return;
  35.         }
  36.         $this->frontAPIService->updateJobOnFront($job);
  37.     }
  38.     public function onJobDeleted(JobDeletedEvent $event): void
  39.     {
  40.         $job $event->getJob();
  41.         if (!$job instanceof Job) {
  42.             return;
  43.         }
  44.         $this->frontAPIService->deleteJobOnFront($job);
  45.     }
  46. }