Example #1
0
 /**
  * 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());
 }
Example #2
0
 /**
  * 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;
 }
Example #4
0
 /**
  * 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;
 }