![]() 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/old/vendor/magento/module-marketplace/Model/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Marketplace\Model; use Magento\Framework\HTTP\Client\Curl; use Magento\Marketplace\Helper\Cache; use Magento\Backend\Model\UrlInterface; /** * @api * @since 100.0.2 */ class Partners { /** * @var Curl */ protected $curlClient; /** * @var string */ protected $urlPrefix = 'https://'; /** * @var string */ protected $apiUrl = 'magento.com/magento-connect/platinumpartners/list'; /** * @var \Magento\Marketplace\Helper\Cache */ protected $cache; /** * @var UrlInterface */ private $backendUrl; /** * @param Curl $curl * @param Cache $cache * @param UrlInterface $backendUrl */ public function __construct(Curl $curl, Cache $cache, UrlInterface $backendUrl) { $this->curlClient = $curl; $this->cache = $cache; $this->backendUrl = $backendUrl; } /** * @return string */ public function getApiUrl() { return $this->urlPrefix . $this->apiUrl; } /** * Gets partners json * * @return array */ public function getPartners() { $apiUrl = $this->getApiUrl(); try { $this->getCurlClient()->post($apiUrl, []); $this->getCurlClient()->setOptions( [ CURLOPT_REFERER => $this->getReferer() ] ); $response = json_decode($this->getCurlClient()->getBody(), true); if ($response['partners']) { $this->getCache()->savePartnersToCache($response['partners']); return $response['partners']; } else { return $this->getCache()->loadPartnersFromCache(); } } catch (\Exception $e) { return $this->getCache()->loadPartnersFromCache(); } } /** * @return Curl */ public function getCurlClient() { return $this->curlClient; } /** * @return cache */ public function getCache() { return $this->cache; } /** * @return string */ public function getReferer() { return \Magento\Framework\App\Request\Http::getUrlNoScript($this->backendUrl->getBaseUrl()) . 'admin/marketplace/index/index'; } }