src/Component/Core/Admin/Listener/DatasheetsUploadListener.php line 18

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace BitBag\OpenMarketplace\Component\Core\Admin\Listener;
  4. use BitBag\OpenMarketplace\Component\Core\Common\Model\Datasheet\DatasheetAwareInterface;
  5. use Sylius\Component\Core\Uploader\ImageUploaderInterface;
  6. use Symfony\Component\EventDispatcher\GenericEvent;
  7. use Webmozart\Assert\Assert;
  8. final class DatasheetsUploadListener
  9. {
  10.     public function __construct(private ImageUploaderInterface $datasheetsUploader)
  11.     {
  12.     }
  13.     public function uploadDatasheets(GenericEvent $event): void
  14.     {
  15.         $subject $event->getSubject();
  16.         Assert::isInstanceOf($subjectDatasheetAwareInterface::class);
  17.         $this->uploadSubjectDatasheets($subject);
  18.     }
  19.     private function uploadSubjectDatasheets(DatasheetAwareInterface $subject): void
  20.     {
  21.         $datasheets $subject->getDatasheets();
  22.         foreach ($datasheets as $datasheet) {
  23.             if ($datasheet->hasFile()) {
  24.                 $this->datasheetsUploader->upload($datasheet);
  25.                 $file $datasheet->getFile();
  26.                 $datasheet->setOriginalFilename($file->getClientOriginalName());
  27.                 $datasheet->setType($file->getType());
  28.             }
  29.             if (null === $datasheet->getPath()) {
  30.                 $datasheets->removeElement($datasheet);
  31.             }
  32.         }
  33.     }
  34. }