/** * Tests \Magento\Framework\DataObject->addData() */ public function testAddData() { $this->_object->addData(['test' => 'value']); $this->assertEquals('value', $this->_object->getData('test')); $this->_object->addData(['test' => 'value1']); $this->assertEquals('value1', $this->_object->getData('test')); $this->_object->addData(['test2' => 'value2']); $this->assertEquals(['test' => 'value1', 'test2' => 'value2'], $this->_object->getData()); }
/** * Post request into gateway * * @param DataObject $request * @param ConfigInterface $config * * @return DataObject * @throws \Zend_Http_Client_Exception */ public function postRequest(DataObject $request, ConfigInterface $config) { $result = new DataObject(); $clientConfig = ['maxredirects' => 5, 'timeout' => 30, 'verifypeer' => $config->getValue('verify_peer')]; if ($config->getValue('use_proxy')) { $clientConfig['proxy'] = $config->getValue('proxy_host') . ':' . $config->getValue('proxy_port'); $clientConfig['httpproxytunnel'] = true; $clientConfig['proxytype'] = CURLPROXY_HTTP; } /** @var ZendClient $client */ $client = $this->httpClientFactory->create(); $client->setUri((bool) $config->getValue('sandbox_flag') ? $config->getValue('transaction_url_test_mode') : $config->getValue('transaction_url')); $client->setConfig($clientConfig); $client->setMethod(\Zend_Http_Client::POST); $client->setParameterPost($request->getData()); $client->setHeaders(['X-VPS-VIT-CLIENT-CERTIFICATION-ID' => '33baf5893fc2123d8b191d2d011b7fdc', 'X-VPS-Request-ID' => $this->mathRandom->getUniqueHash(), 'X-VPS-CLIENT-TIMEOUT' => 45]); $client->setUrlEncodeBody(false); try { $response = $client->request(); $responseArray = []; parse_str(strstr($response->getBody(), 'RESULT'), $responseArray); $result->setData(array_change_key_case($responseArray, CASE_LOWER)); $result->setData('result_code', $result->getData('result')); } catch (\Zend_Http_Client_Exception $e) { $result->addData(['response_code' => -1, 'response_reason_code' => $e->getCode(), 'response_reason_text' => $e->getMessage()]); throw $e; } finally { $this->logger->debug(['request' => $request->getData(), 'result' => $result->getData()], (array) $config->getValue('getDebugReplacePrivateDataKeys'), (bool) $config->getValue('debug')); } return $result; }
/** * @return \Magento\Framework\Controller\Result\Json */ public function execute() { $response = new DataObject(); $id = $this->getRequest()->getParam('id'); if (intval($id) > 0) { $product = $this->productRepository->getById($id); $response->setId($id); $response->addData($product->getData()); $response->setError(0); } else { $response->setError(1); $response->setMessage(__('We can\'t retrieve the product ID.')); } /** @var \Magento\Framework\Controller\Result\Json $resultJson */ $resultJson = $this->resultFactory->create(ResultFactory::TYPE_JSON); $resultJson->setData($response->toArray()); return $resultJson; }
/** * Math path * * @param string $pathInfo * @return bool|DataObject * * @SuppressWarnings(PHPMD.CyclomaticComplexity) * @SuppressWarnings(PHPMD.NPathComplexity) */ public function match($pathInfo) { $identifier = trim($pathInfo, '/'); $parts = explode('/', $identifier); if (count($parts) == 1) { $parts[0] = $this->getUrlKeyWithoutSuffix($parts[0]); } if (isset($parts[0]) && !isset($this->configB[$parts[0]])) { return false; } $module = $this->configB[$parts[0]]; if (!$this->isEnabled($module)) { return false; } if (count($parts) > 1) { unset($parts[0]); $urlKey = implode('/', $parts); $urlKey = urldecode($urlKey); $urlKey = $this->getUrlKeyWithoutSuffix($urlKey); } else { $urlKey = ''; } # check on static urls (urls for static pages, ex. lists) $type = $rewrite = false; foreach ($this->config[$module] as $t => $key) { if ($key === $urlKey) { if ($t == '_BASE_PATH') { continue; } $type = $t; break; } } # check on dynamic urls (ex. urls of products, categories etc) if (!$type) { $collection = $this->urlRewriteCollectionFactory->create()->addFieldToFilter('url_key', $urlKey)->addFieldToFilter('module', $module); if ($collection->count()) { /** @var \Mirasvit\Core\Model\UrlRewrite $rewrite */ $rewrite = $collection->getFirstItem(); $type = $rewrite->getType(); } else { return false; } } if ($type) { $action = $this->configB[$module . '_' . $type]['ACTION']; $params = $this->configB[$module . '_' . $type]['PARAMS']; $result = new DataObject(); $actionParts = explode('_', $action); $result->addData(['route_name' => $actionParts[0], 'module_name' => $actionParts[0], 'controller_name' => $actionParts[1], 'action_name' => $actionParts[2], 'action_params' => $params]); if ($rewrite) { $result->setData('entity_id', $rewrite->getEntityId()); } return $result; } return false; }