core/lib/Thelia/Action/Import.php line 58

  1. <?php
  2. /*
  3.  * This file is part of the Thelia package.
  4.  * http://www.thelia.net
  5.  *
  6.  * (c) OpenStudio <info@thelia.net>
  7.  *
  8.  * For the full copyright and license information, please view the LICENSE
  9.  * file that was distributed with this source code.
  10.  */
  11. namespace Thelia\Action;
  12. use Symfony\Component\EventDispatcher\EventDispatcherInterface;
  13. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  14. use Thelia\Core\Event\TheliaEvents;
  15. use Thelia\Core\Event\UpdatePositionEvent;
  16. use Thelia\Handler\ImportHandler;
  17. use Thelia\Model\ImportCategoryQuery;
  18. use Thelia\Model\ImportQuery;
  19. /**
  20.  * Class Import.
  21.  *
  22.  * @author Jérôme Billiras <jbilliras@openstudio.fr>
  23.  */
  24. class Import extends BaseAction implements EventSubscriberInterface
  25. {
  26.     /**
  27.      * @var \Thelia\Handler\ImportHandler The import handler
  28.      */
  29.     protected $handler;
  30.     /**
  31.      * @param \Thelia\Handler\ImportHandler $importHandler The import handler
  32.      */
  33.     public function __construct(ImportHandler $importHandler)
  34.     {
  35.         $this->handler $importHandler;
  36.     }
  37.     public static function getSubscribedEvents()
  38.     {
  39.         return [
  40.             TheliaEvents::IMPORT_CHANGE_POSITION => [
  41.                 ['importChangePosition'128],
  42.             ],
  43.             TheliaEvents::IMPORT_CATEGORY_CHANGE_POSITION => [
  44.                 ['importCategoryChangePosition'128],
  45.             ],
  46.         ];
  47.     }
  48.     /**
  49.      * Handle import change position event.
  50.      */
  51.     public function importChangePosition(UpdatePositionEvent $updatePositionEvent$eventNameEventDispatcherInterface $dispatcher): void
  52.     {
  53.         $this->handler->getImport($updatePositionEvent->getObjectId(), true);
  54.         $this->genericUpdatePosition(new ImportQuery(), $updatePositionEvent$dispatcher);
  55.     }
  56.     /**
  57.      * Handle import category change position event.
  58.      */
  59.     public function importCategoryChangePosition(UpdatePositionEvent $updatePositionEvent$eventNameEventDispatcherInterface $dispatcher): void
  60.     {
  61.         $this->handler->getCategory($updatePositionEvent->getObjectId(), true);
  62.         $this->genericUpdatePosition(new ImportCategoryQuery(), $updatePositionEvent$dispatcher);
  63.     }
  64. }