Your IP : 3.145.209.163


Current Path : /home/bitrix/ext_www/dev.home-comfort.in.ua/bitrix/modules/sale/lib/exchange/
Upload File :
Current File : /home/bitrix/ext_www/dev.home-comfort.in.ua/bitrix/modules/sale/lib/exchange/importpattern.php

<?php
namespace Bitrix\Sale\Exchange;

use Bitrix\Sale\Result;
use Bitrix\Sale\Exchange;

abstract class ImportPattern
{
    /**
     * @param array $rawData
     * @return mixed
     */
    abstract protected function parse(array $rawData);

    /**
     * @param array $items
     * @return mixed
     */
    abstract protected function convert(array $items);

    /**
     * @param ImportBase[] $items
     * @return mixed
     */
    abstract protected function import(array $items);

    /**
     * @param array $rawData
     * @return Result
     */
    public function process(array $rawData)
    {
        /** @var Result $r */
        $r = $this->parse($rawData);
        if(!$r->isSuccess())
            return $r;

        $documents = $r->getData();
        $r = $this->convert($documents);
        if(!$r->isSuccess())
            return $r;

        $entityItems = $r->getData();
        $r = $this->import($entityItems);
        return $r;
    }
}