src/Api/EventListener/ImportLogListener.php line 19

Open in your IDE?
  1. <?php
  2. namespace App\Api\EventListener;
  3. use App\Api\Event\ImportEvent;
  4. use App\Entity\Sale;
  5. use App\Entity\Vehicle;
  6. use Psr\Log\LoggerInterface;
  7. class ImportLogListener
  8. {
  9.     private $counter;
  10.     public function __construct(private readonly LoggerInterface $logger)
  11.     {
  12.         $this->counter = ['ignored' => 0'persisted' => 0];
  13.     }
  14.     public function onNewData(ImportEvent $event): void
  15.     {
  16.         $data = (array) $event->getObject();
  17.         if (isset($data['saleid'])) {
  18.             $this->logger->info('Received Sale '.$data['saleid'].'...');
  19.         } elseif (isset($data['id'])) {
  20.             dump('pouet');
  21.             $this->logger->info('Received Vehicle '.$data['id'].'...');
  22.         } else {
  23.             $this->logger->info('Received some data...');
  24.         }
  25.     }
  26.     public function onIgnoredData(ImportEvent $event): void
  27.     {
  28.         $data = (array) $event->getObject();
  29.         if (isset($data['status']) && 'D' === $data['status']) {
  30.             $this->logger->info('Vehicle deleted.');
  31.         } else {
  32.             $this->logger->warning('The object could not be resolved. This might mean something is wrong with the data.');
  33.         }
  34.         ++$this->counter['ignored'];
  35.     }
  36.     public function onPersistedData(ImportEvent $event): void
  37.     {
  38.         $entity $event->getObject();
  39.         if ($entity instanceof Sale) {
  40.             $this->logger->info(sprintf('Sale %s imported.'$entity->getId()));
  41.         } elseif ($entity instanceof Vehicle) {
  42.             $this->logger->info(sprintf('Vehicle imported with new id %s.'$entity->getId()));
  43.         }
  44.         ++$this->counter['persisted'];
  45.     }
  46.     public function onErrorData(ImportEvent $event): void
  47.     {
  48.         $this->logger->error(sprintf('Vehicle %s error'$event->getId() ?? ''));
  49.     }
  50.     public function onEnd(ImportEvent $event): void
  51.     {
  52.         $this->logger->info(sprintf('Summary sale %s: persisted %s, ignored/deleted %s.'$event->getId() ?? ''$this->counter['persisted'], $this->counter['ignored']));
  53.     }
  54. }