56 lines
1.4 KiB
PHP
56 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace Empik\Marketplace\Handler;
|
|
|
|
use Exception;
|
|
use Empik\Marketplace\API\EmpikClient;
|
|
use Empik\Marketplace\DataProvider\OffersDataProvider;
|
|
use Empik\Marketplace\Factory\EmpikClientFactory;
|
|
use Empik\Marketplace\Repository\ProductRepository;
|
|
use Empik\Marketplace\Traits\ErrorsTrait;
|
|
|
|
class UpdateDeleteOfferHandler
|
|
{
|
|
use ErrorsTrait;
|
|
|
|
/** @var EmpikClientFactory */
|
|
protected $empikClientFactory;
|
|
|
|
/** @var ProductRepository */
|
|
protected $productRepository;
|
|
|
|
/** @var OffersDataProvider */
|
|
protected $offersDataProvider;
|
|
|
|
/** @var EmpikClient */
|
|
protected $empikClient;
|
|
|
|
public function __construct(
|
|
EmpikClientFactory $empikClientFactory,
|
|
ProductRepository $productRepository,
|
|
OffersDataProvider $offersDataProvider
|
|
) {
|
|
$this->empikClientFactory = $empikClientFactory;
|
|
$this->productRepository = $productRepository;
|
|
$this->offersDataProvider = $offersDataProvider;
|
|
|
|
$this->empikClient = $this->empikClientFactory->createClient();
|
|
}
|
|
|
|
public function handle(array $ids)
|
|
{
|
|
try {
|
|
$offersData = $this->offersDataProvider->getOffersDataByProductIds($ids);
|
|
$this->empikClient->postOffers($offersData);
|
|
|
|
return true;
|
|
|
|
} catch (Exception $e) {
|
|
$this->addError($e->getMessage());
|
|
}
|
|
|
|
return false;
|
|
}
|
|
}
|
|
|