vendor/abcpremium/asset-metadata-assigner/src/Event/Subscriber/DispatchMessageOnNewAsset.php line 37

Open in your IDE?
  1. <?php
  2. namespace Abcpremium\AssetMetadataAssignerBundle\Event\Subscriber;
  3. use Abcpremium\AssetMetadataAssignerBundle\Configuration\BundleConfiguration;
  4. use Abcpremium\AssetMetadataAssignerBundle\Event\Validator;
  5. use Abcpremium\AssetMetadataAssignerBundle\Messenger\AssetMetadataMessage;
  6. use Pimcore\Event\AssetEvents;
  7. use Pimcore\Event\Model\AssetEvent;
  8. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  9. use Symfony\Component\Messenger\MessageBusInterface;
  10. class DispatchMessageOnNewAsset implements EventSubscriberInterface
  11. {
  12.     private BundleConfiguration $bundleConfiguration;
  13.     private Validator $validator;
  14.     private MessageBusInterface $messageBus;
  15.     public function __construct(
  16.         BundleConfiguration $bundleConfiguration,
  17.         MessageBusInterface $messageBus,
  18.         Validator $validator
  19.     ) {
  20.         $this->bundleConfiguration $bundleConfiguration;
  21.         $this->validator $validator;
  22.         $this->messageBus $messageBus;
  23.     }
  24.     public static function getSubscribedEvents(): array
  25.     {
  26.         return [
  27.             AssetEvents::POST_ADD => 'dispatchMessageOnNewAsset',
  28.         ];
  29.     }
  30.     public function dispatchMessageOnNewAsset(AssetEvent $event): void
  31.     {
  32.         if (false === $this->validator->isValidAssetEvent($event)) {
  33.             return;
  34.         }
  35.         $assetModel $event->getAsset();
  36.         $metaDataConfiguration $this->bundleConfiguration->getAssetMetaDataConfiguration();
  37.         $message = new AssetMetadataMessage();
  38.         $message->setAssetId($assetModel->getId());
  39.         $message->setMetaDataConfiguration($metaDataConfiguration);
  40.         $this->messageBus->dispatch($message);
  41.     }
  42. }