1
0
mirror of synced 2024-11-24 14:26:06 +03:00

Methods updated

This commit is contained in:
Kruglov Kirill 2013-07-09 16:24:28 +04:00
parent 253b818cd1
commit 31106561b8

View File

@ -33,6 +33,7 @@ class RestApi
protected $apiVersion = '1';
protected $lastError;
protected $statusCode;
protected $parameters;
/**
* @param string $crmUrl - адрес CRM
@ -42,6 +43,7 @@ class RestApi
{
$this->apiUrl = $crmUrl.'/api/v'.$this->apiVersion.'/';
$this->apiKey = $apiKey;
$this->parameters = array('apiKey' => $this->apiKey);
}
@ -71,11 +73,15 @@ class RestApi
* Получение заказа по id
*
* @param string $id - идентификатор заказа
* @param string $by - поиск заказа по id или externalId
* @return array - информация о заказе
*/
public function orderGet($id)
public function orderGet($id, $by = 'externalId')
{
$url = $this->apiUrl.'orders/'.$id;
if ($by != 'externalId')
$this->parameters['by'] = $by;
$result = $this->curlRequest($url);
return $result;
}
@ -91,11 +97,10 @@ class RestApi
$dataJson = json_encode($order);
$dataJson = str_replace(self::$jsonReplaceSource, self::$jsonReplaceTarget,
$dataJson);
$parameters = array();
$parameters['order'] = $dataJson;
$this->parameters['order'] = $dataJson;
$url = $this->apiUrl.'orders/create';
$result = $this->curlRequest($url, $parameters, 'POST');
$result = $this->curlRequest($url, 'POST');
return $result;
}
@ -110,11 +115,10 @@ class RestApi
$dataJson = json_encode($order);
$dataJson = str_replace(self::$jsonReplaceSource, self::$jsonReplaceTarget,
$dataJson);
$parameters = array();
$parameters['order'] = $dataJson;
$this->parameters['order'] = $dataJson;
$url = $this->apiUrl.'orders/'.$order['id'].'/edit';
$result = $this->curlRequest($url, $parameters, 'POST');
$url = $this->apiUrl.'orders/'.$order['externalId'].'/edit';
$result = $this->curlRequest($url, 'POST');
return $result;
}
@ -129,11 +133,10 @@ class RestApi
$dataJson = json_encode($orders);
$dataJson = str_replace(self::$jsonReplaceSource, self::$jsonReplaceTarget,
$dataJson);
$parameters = array();
$parameters['orders'] = $dataJson;
$this->parameters['orders'] = $dataJson;
$url = $this->apiUrl.'orders/upload';
$result = $this->curlRequest($url, $parameters, 'POST');
$result = $this->curlRequest($url, 'POST');
return $result;
}
@ -141,12 +144,15 @@ class RestApi
* Удаление заказа
*
* @param string $id - идентификатор заказа
* @param string $by - поиск заказа по id или externalId
* @return array
*/
public function orderDelete($id)
public function orderDelete($id, $by = 'externalId')
{
$url = $this->apiUrl.'orders/'.$id.'/delete';
$result = $this->curlRequest($url, array(), 'POST');
if ($by != 'externalId')
$this->parameters['by'] = $by;
$result = $this->curlRequest($url, 'POST');
return $result;
}
@ -162,13 +168,12 @@ class RestApi
public function orderHistory($startDate = null, $endDate = null, $limit = 100, $offset = 0)
{
$url = $this->apiUrl.'orders/history';
$parameters = array();
$parameters['startDate'] = $startDate;
$parameters['endDate'] = $endDate;
$parameters['limit'] = $limit;
$parameters['offset'] = $offset;
$this->parameters['startDate'] = $startDate;
$this->parameters['endDate'] = $endDate;
$this->parameters['limit'] = $limit;
$this->parameters['offset'] = $offset;
$result = $this->curlRequest($url, $parameters);
$result = $this->curlRequest($url);
return $result;
}
@ -178,11 +183,14 @@ class RestApi
* Получение клиента по id
*
* @param string $id - идентификатор
* @param string $by - поиск заказа по id или externalId
* @return array - информация о клиенте
*/
public function customerGet($id)
public function customerGet($id, $by = 'externalId')
{
$url = $this->apiUrl.'customers/'.$id;
if ($by != 'externalId')
$this->parameters['by'] = $by;
$result = $this->curlRequest($url);
return $result;
}
@ -198,11 +206,10 @@ class RestApi
$dataJson = json_encode($customer);
$dataJson = str_replace(self::$jsonReplaceSource, self::$jsonReplaceTarget,
$dataJson);
$parameters = array();
$parameters['customer'] = $dataJson;
$this->parameters['customer'] = $dataJson;
$url = $this->apiUrl.'customers/create';
$result = $this->curlRequest($url, $parameters, 'POST');
$result = $this->curlRequest($url, 'POST');
return $result;
}
@ -217,11 +224,10 @@ class RestApi
$dataJson = json_encode($customer);
$dataJson = str_replace(self::$jsonReplaceSource, self::$jsonReplaceTarget,
$dataJson);
$parameters = array();
$parameters['customer'] = $dataJson;
$this->parameters['customer'] = $dataJson;
$url = $this->apiUrl.'customers/'.$customer['id'].'/edit';
$result = $this->curlRequest($url, $parameters, 'POST');
$url = $this->apiUrl.'customers/'.$customer['externalId'].'/edit';
$result = $this->curlRequest($url, 'POST');
return $result;
}
@ -229,12 +235,15 @@ class RestApi
* Удаление клиента
*
* @param string $id - идентификатор
* @param string $by - поиск заказа по id или externalId
* @return array
*/
public function customerDelete($id)
public function customerDelete($id, $by = 'externalId')
{
$url = $this->apiUrl.'customers/'.$id.'/delete';
$result = $this->curlRequest($url, array(), 'POST');
if ($by != 'externalId')
$this->parameters['by'] = $by;
$result = $this->curlRequest($url, 'POST');
return $result;
}
@ -242,6 +251,7 @@ class RestApi
* Получение списка заказов клиента
*
* @param string $id - идентификатор клиента
* @param string $by - поиск заказа по id или externalId
* @param DateTime $startDate - начальная дата выборки
* @param DateTime $endDate - конечная дата
* @param int $limit - ограничение на размер выборки
@ -249,16 +259,17 @@ class RestApi
* @return array - массив заказов
*/
public function customerOrdersList($id, $startDate = null, $endDate = null,
$limit = 100, $offset = 0)
$limit = 100, $offset = 0, $by = 'externalId')
{
$url = $this->apiUrl.'customers/'.$id.'/orders';
$parameters = array();
$parameters['startDate'] = $startDate;
$parameters['endDate'] = $endDate;
$parameters['limit'] = $limit;
$parameters['offset'] = $offset;
if ($by != 'externalId')
$this->parameters['by'] = $by;
$this->parameters['startDate'] = $startDate;
$this->parameters['endDate'] = $endDate;
$this->parameters['limit'] = $limit;
$this->parameters['offset'] = $offset;
$result = $this->curlRequest($url, $parameters);
$result = $this->curlRequest($url);
return $result;
}
@ -286,11 +297,10 @@ class RestApi
$dataJson = json_encode($deliveryType);
$dataJson = str_replace(self::$jsonReplaceSource, self::$jsonReplaceTarget,
$dataJson);
$parameters = array();
$parameters['deliveryType'] = $dataJson;
$this->parameters['deliveryType'] = $dataJson;
$url = $this->apiUrl.'delivery-types/'.$deliveryType['code'].'/edit';
$result = $this->curlRequest($url, $parameters, 'POST');
$result = $this->curlRequest($url, 'POST');
return $result;
}
@ -318,11 +328,10 @@ class RestApi
$dataJson = json_encode($paymentType);
$dataJson = str_replace(self::$jsonReplaceSource, self::$jsonReplaceTarget,
$dataJson);
$parameters = array();
$parameters['paymentType'] = $dataJson;
$this->parameters['paymentType'] = $dataJson;
$url = $this->apiUrl.'payment-types/'.$paymentType['code'].'/edit';
$result = $this->curlRequest($url, $parameters, 'POST');
$result = $this->curlRequest($url, 'POST');
return $result;
}
@ -350,11 +359,10 @@ class RestApi
$dataJson = json_encode($paymentStatus);
$dataJson = str_replace(self::$jsonReplaceSource, self::$jsonReplaceTarget,
$dataJson);
$parameters = array();
$parameters['paymentStatus'] = $dataJson;
$this->parameters['paymentStatus'] = $dataJson;
$url = $this->apiUrl.'payment-statuses/'.$paymentStatus['code'].'/edit';
$result = $this->curlRequest($url, $parameters, 'POST');
$result = $this->curlRequest($url, 'POST');
return $result;
}
@ -382,11 +390,10 @@ class RestApi
$dataJson = json_encode($orderType);
$dataJson = str_replace(self::$jsonReplaceSource, self::$jsonReplaceTarget,
$dataJson);
$parameters = array();
$parameters['orderType'] = $dataJson;
$this->parameters['orderType'] = $dataJson;
$url = $this->apiUrl.'order-types/'.$orderType['code'].'/edit';
$result = $this->curlRequest($url, $parameters, 'POST');
$result = $this->curlRequest($url, 'POST');
return $result;
}
@ -413,11 +420,10 @@ class RestApi
$dataJson = json_encode($status);
$dataJson = str_replace(self::$jsonReplaceSource, self::$jsonReplaceTarget,
$dataJson);
$parameters = array();
$parameters['status'] = $dataJson;
$this->parameters['status'] = $dataJson;
$url = $this->apiUrl.'statuses/'.$status['code'].'/edit';
$result = $this->curlRequest($url, $parameters, 'POST');
$result = $this->curlRequest($url, 'POST');
return $result;
}
@ -437,12 +443,10 @@ class RestApi
protected function curlRequest($url, $parameters = null, $method = 'GET', $format = 'json')
protected function curlRequest($url, $method = 'GET', $format = 'json')
{
$parameters['apiKey'] = $this->apiKey;
if ($method == 'GET' && !is_null($parameters))
$url .= '?'.http_build_query($parameters);
if ($method == 'GET' && !is_null($this->parameters))
$url .= '?'.http_build_query($this->parameters);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
@ -454,11 +458,14 @@ class RestApi
if ($method == 'POST')
{
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $parameters);
curl_setopt($ch, CURLOPT_POSTFIELDS, $this->parameters);
}
$response = curl_exec($ch);
$this->statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
unset($this->parameters);
/* Сброс массива с параметрами */
$this->parameters = array('apiKey' => $this->apiKey);
if (curl_errno($ch))
{