/**
  * Validates the class name of event item and prepares internal document for persistence operation.
  *
  * @param ItemPipelineEvent $event
  *
  * @return bool
  */
 protected function setItem(ItemPipelineEvent $event)
 {
     /** @var AbstractImportItem $tempItem */
     $tempItem = $event->getItem();
     if (!$tempItem instanceof $this->importItemClass) {
         $this->log("Item provided is not an {$this->importItemClass}", LogLevel::ERROR);
         return false;
     }
     $this->importItem = $tempItem;
     return true;
 }
 /**
  * Modify event.
  *
  * @param ItemPipelineEvent $event
  */
 public function onModify(ItemPipelineEvent $event)
 {
     $item = $event->getItem();
     if ($item instanceof ImportItem) {
         $this->modify($item, $event);
     } elseif ($item instanceof SyncExecuteItem) {
         $syncStorageData = $item->getSyncStorageData();
         if ($syncStorageData['type'] !== ActionTypes::DELETE) {
             $this->modify($item, $event);
         } else {
             ItemSkipper::skip($event, 'Delete item with id = ' . $syncStorageData['id']);
         }
     } else {
         $this->log('The type of provided item is not ImportItem or SyncExecuteItem.', LogLevel::ERROR);
     }
 }
Example #3
0
 /**
  * OnModify.
  *
  * @param ItemPipelineEvent $event
  */
 public function onModify(ItemPipelineEvent $event)
 {
     if ($event->getItem() == 'skip') {
         ItemSkipper::skip($event, 'Test reason for skip');
     }
 }
 /**
  * Pipeline consume event listener.
  *
  * @param ItemPipelineEvent $event
  */
 public function consume(ItemPipelineEvent $event)
 {
     $this->invalidateItem($event->getItem(), $event->getContext());
 }
 /**
  * Consumes given event.
  *
  * @param ItemPipelineEvent $event
  */
 public function consume(ItemPipelineEvent $event)
 {
     $this->extractor->extract($event->getItem());
 }
 /**
  * Events onModify action.
  *
  * @param ItemPipelineEvent $documentEvent
  */
 public function onModify(ItemPipelineEvent $documentEvent)
 {
     $this->processData($documentEvent->getItem());
 }