![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/cartforge.co/app/code/Amasty/Base/Utils/Http/Response/ |
<?php declare(strict_types=1); /** * @author Amasty Team * @copyright Copyright (c) Amasty (https://www.amasty.com) * @package Magento 2 Base Package */ namespace Amasty\Base\Utils\Http\Response; use Amasty\Base\Model\SimpleDataObject; use Amasty\Base\Model\SimpleDataObjectFactory; use Amasty\Base\Utils\DataConverter; use Amasty\Base\Utils\Http\Response\Entity\ConfigPool; use Amasty\Base\Utils\Http\Response\Entity\Converter; use Magento\Framework\Exception\NotFoundException; class ResponseFactory { /** * @var Converter */ private $converter; /** * @var ConfigPool */ private $configPool; /** * @var SimpleDataObjectFactory */ private $simpleDataObjectFactory; /** * @var DataConverter */ private $dataConverter; public function __construct( Converter $converter, ConfigPool $configPool, SimpleDataObjectFactory $simpleDataObjectFactory, DataConverter $dataConverter ) { $this->converter = $converter; $this->configPool = $configPool; $this->simpleDataObjectFactory = $simpleDataObjectFactory; $this->dataConverter = $dataConverter; } public function create(string $url, array $response): SimpleDataObject { $response = $this->dataConverter->convertArrayToSnakeCase($response); try { // phpcs:disable Magento2.Functions.DiscouragedFunction.Discouraged $path = parse_url($url, PHP_URL_PATH); $entityConfig = $this->configPool->get($path); if ($entityConfig->getType() == 'array') { $object = []; foreach ($response as $row) { $object[] = $this->converter->convertToObject($row, $entityConfig); } } else { $object = $this->converter->convertToObject($response, $entityConfig); } } catch (NotFoundException $e) { $object = $this->simpleDataObjectFactory->create(['data' => $response ?? []]); } return $object; } }