prestashop-module/retailcrm/lib/RetailcrmProxy.php

55 lines
1.5 KiB
PHP
Raw Normal View History

2016-01-13 18:43:41 +03:00
<?php
/**
* Class RequestProxy
* @package RetailCrm\Component
*/
class RetailcrmProxy
{
private $api;
private $log;
public function __construct($url, $key, $log, $version = '4')
{
switch ($version) {
case '5':
$this->api = new RetailcrmApiClientV5($url, $key);
break;
case '4':
$this->api = new RetailcrmApiClientV4($url, $key);
break;
case '3':
$this->api = new RetailcrmApiClientV3($url, $key);
break;
}
2016-01-13 18:43:41 +03:00
$this->log = $log;
}
public function __call($method, $arguments)
{
$date = date('Y-m-d H:i:s');
2016-01-13 18:43:41 +03:00
try {
$response = call_user_func_array(array($this->api, $method), $arguments);
if (!$response->isSuccessful()) {
error_log("[$date] @ [$method] " . $response->getErrorMsg() . "\n", 3, $this->log);
2016-01-13 18:43:41 +03:00
if (isset($response['errors'])) {
$error = implode("\n", $response['errors']);
error_log($error . "\n", 3, $this->log);
}
$response = false;
}
return $response;
} catch (CurlException $e) {
error_log("[$date] @ [$method] " . $e->getMessage() . "\n", 3, $this->log);
2016-01-13 18:43:41 +03:00
return false;
} catch (InvalidJsonException $e) {
error_log("[$date] @ [$method] " . $e->getMessage() . "\n", 3, $this->log);
2016-01-13 18:43:41 +03:00
return false;
}
}
}