![]() 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/vendor/magento/framework/Webapi/Rest/Request/Deserializer/ |
<?php /** * JSON deserializer of REST request content. * * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Framework\Webapi\Rest\Request\Deserializer; use Magento\Framework\App\State; use Magento\Framework\Phrase; class Json implements \Magento\Framework\Webapi\Rest\Request\DeserializerInterface { /** * @var \Magento\Framework\Json\Decoder * @deprecated 101.0.0 */ protected $decoder; /** * @var State */ protected $_appState; /** * @var \Magento\Framework\Serialize\Serializer\Json */ private $serializer; /** * @param \Magento\Framework\Json\Decoder $decoder * @param State $appState * @param \Magento\Framework\Serialize\Serializer\Json|null $serializer * @throws \RuntimeException */ public function __construct( \Magento\Framework\Json\Decoder $decoder, State $appState, \Magento\Framework\Serialize\Serializer\Json $serializer = null ) { $this->decoder = $decoder; $this->_appState = $appState; $this->serializer = $serializer ?: \Magento\Framework\App\ObjectManager::getInstance() ->get(\Magento\Framework\Serialize\Serializer\Json::class); } /** * Parse Request body into array of params. * * @param string $encodedBody Posted content from request. * @return array|null Return NULL if content is invalid. * @throws \InvalidArgumentException * @throws \Magento\Framework\Webapi\Exception If decoding error was encountered. */ public function deserialize($encodedBody) { if (!is_string($encodedBody)) { throw new \InvalidArgumentException( sprintf('"%s" data type is invalid. String is expected.', gettype($encodedBody)) ); } try { $decodedBody = $this->serializer->unserialize($encodedBody); } catch (\InvalidArgumentException $e) { if ($this->_appState->getMode() !== State::MODE_DEVELOPER) { throw new \Magento\Framework\Webapi\Exception(new Phrase('Decoding error.')); } else { throw new \Magento\Framework\Webapi\Exception( new Phrase( 'Decoding error: %1%2%3%4', [PHP_EOL, $e->getMessage(), PHP_EOL, $e->getTraceAsString()] ) ); } } return $decodedBody; } }