10 use Zend\View\Model\JsonModel;
66 \
Magento\Framework\HTTP\Client\Curl $curl,
71 $this->curlClient = $curl;
80 private function getPackagesJsonUrl()
90 $config = $this->serviceLocator->get(
'config');
91 return $config[
'marketplace'][
'check_credentials_url'];
103 $serviceUrl = $this->getPackagesJsonUrl();
104 $this->curlClient->setCredentials(
$token, $secretKey);
106 $this->curlClient->post($serviceUrl, []);
107 if ($this->curlClient->getStatus() == 200) {
108 $packagesInfo = $this->curlClient->getBody();
110 $directory->writeFile(self::PATH_TO_PACKAGES_FILE, $packagesInfo);
112 $response = [
'success' =>
false,
'message' =>
'Bad credentials'];
115 $response = [
'success' =>
false,
'message' => $e->getMessage()];
117 return $this->serializer->serialize(
$response);
128 $authJson = $this->getAuthJson();
130 $authJsonData = isset($authJson[
'http-basic'][$serviceUrl]) ? $authJson[
'http-basic'][$serviceUrl] :
false;
132 $authJsonData =
false;
134 return $authJsonData;
143 private function getAuthJson()
146 if ($directory->isExist(self::PATH_TO_AUTH_FILE) && $directory->isReadable(self::PATH_TO_AUTH_FILE)) {
148 $data = $directory->readFile(self::PATH_TO_AUTH_FILE);
149 return json_decode(
$data,
true);
151 throw new \Exception(
'Error in reading Auth file');
167 if ($directory->isExist(self::PATH_TO_AUTH_FILE) && $directory->isReadable(self::PATH_TO_AUTH_FILE)) {
168 $authJsonData = $this->getAuthJson();
169 if (isset($authJsonData[
'http-basic']) && isset($authJsonData[
'http-basic'][$serviceUrl])) {
170 unset($authJsonData[
'http-basic'][$serviceUrl]);
171 if ($authJsonData === [
'http-basic' => []]) {
172 return $directory->delete(self::PATH_TO_AUTH_FILE);
174 $data = json_encode($authJsonData, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT);
175 return $data !==
false && $directory->writeFile(self::PATH_TO_AUTH_FILE,
$data);
201 $json = new \Zend\View\Model\JsonModel($authContent);
202 $json->setOption(
'prettyPrint',
true);
203 $jsonContent = $json->serialize();
205 return $directory->writeFile(self::PATH_TO_AUTH_FILE, $jsonContent);
__construct(\Zend\ServiceManager\ServiceLocatorInterface $serviceLocator, \Magento\Framework\HTTP\Client\Curl $curl, \Magento\Framework\Filesystem $filesystem, \Magento\Framework\Serialize\Serializer\Json $serializer=null)
checkCredentials($token, $secretKey)
const PATH_TO_PACKAGES_FILE
saveAuthJson($username, $password)