2016-01-29 18:04:48 +03:00
|
|
|
<?php
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Class RequestProxy
|
|
|
|
* @package RetailCrm\Component
|
|
|
|
*/
|
|
|
|
class RetailcrmProxy
|
|
|
|
{
|
|
|
|
|
|
|
|
private $api;
|
|
|
|
private $log;
|
|
|
|
|
2017-08-18 14:39:18 +03:00
|
|
|
public function __construct($url, $key, $log, $version)
|
2017-07-11 17:39:48 +03:00
|
|
|
{
|
2017-08-18 14:39:18 +03:00
|
|
|
if (!$version) $version = 'v4';
|
2017-07-11 17:39:48 +03:00
|
|
|
switch ($version) {
|
|
|
|
case 'v5':
|
|
|
|
$this->api = new RetailcrmApiClient5($url, $key);
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'v4':
|
|
|
|
$this->api = new RetailcrmApiClient4($url, $key);
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'v3':
|
|
|
|
$this->api = new RetailcrmApiClient3($url, $key);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
2016-01-29 18:04:48 +03:00
|
|
|
$this->log = $log;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function __call($method, $arguments)
|
2017-07-11 17:39:48 +03:00
|
|
|
{
|
|
|
|
$date = date('[Y-m-d H:i:s]');
|
|
|
|
|
2016-01-29 18:04:48 +03:00
|
|
|
try {
|
|
|
|
$response = call_user_func_array(array($this->api, $method), $arguments);
|
|
|
|
|
|
|
|
if (!$response->isSuccessful()) {
|
2017-04-06 16:54:52 +03:00
|
|
|
error_log($date . " [$method] " . $response->getErrorMsg() . "\n", 3, $this->log);
|
2016-01-29 18:04:48 +03:00
|
|
|
if (isset($response['errors'])) {
|
|
|
|
$error = implode("\n", $response['errors']);
|
2017-04-06 16:54:52 +03:00
|
|
|
error_log($date .' '. $error . "\n", 3, $this->log);
|
2016-01-29 18:04:48 +03:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return $response;
|
|
|
|
} catch (CurlException $e) {
|
2017-04-06 16:54:52 +03:00
|
|
|
error_log($date . " [$method] " . $e->getMessage() . "\n", 3, $this->log);
|
2016-01-29 18:04:48 +03:00
|
|
|
return false;
|
|
|
|
} catch (InvalidJsonException $e) {
|
2017-04-06 16:54:52 +03:00
|
|
|
error_log($date . " [$method] " . $e->getMessage() . "\n", 3, $this->log);
|
2016-01-29 18:04:48 +03:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|