src/EventListener/FSCompletedSubscriber.php line 21

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use App\Atd\Domain\VoucherDto;
  4. use App\enum\Events;
  5. use App\Event\VoucherUploadEvent;
  6. use Atd\FileStorageBundle\Event\FileStorageCompletedSuccessEvent;
  7. use Atd\FileStorageBundle\EventListener\FileStorageCompletedSubscriber;
  8. use Psr\EventDispatcher\EventDispatcherInterface;
  9. use Psr\Log\LoggerInterface;
  10. class FSCompletedSubscriber extends FileStorageCompletedSubscriber
  11. {
  12.     public function __construct(
  13.         private EventDispatcherInterface $eventDispatcher,
  14.         private LoggerInterface $logger
  15.     ) {
  16.     }
  17.     public function onCompletedSuccess(FileStorageCompletedSuccessEvent $event): void
  18.     {
  19.         if ($event->getStorageResult()->isSuccess()) {
  20.             foreach ($event->getMessages() as $message) {
  21.                 $this->logger->info($message);
  22.             }
  23.             $meta $event->getMeta();
  24.             if ($meta['voucher_id']) {
  25.                 $this->eventDispatcher->dispatch(
  26.                     new VoucherUploadEvent(
  27.                         new VoucherDto(
  28.                             $event->getStorageResult()->toArray()
  29.                         )
  30.                     ),
  31.                     Events::VOUCHER_UPLOAD_TRIGGER
  32.                 );
  33.             } else {
  34.                 $this->logger->warning(sprintf('Could not upload voucher - no voucher_id! (probably an unpaid order)'));
  35.             }
  36.         }
  37.     }
  38. }