This commit is contained in:
Marat Mashkov 2023-02-09 17:27:48 +03:00
parent bb38b5e970
commit 6255eab9c7
3 changed files with 40 additions and 18 deletions

View File

@ -1,12 +1,19 @@
# Класс для работы с API CRM "Клиентская База" и пример использования
# Класс для работы с API CRM "Клиентская База"
**ClientbaseAPI** - это PHP-класс, позволяющий работать с методами API CRM "Клиентская база".
### Начало работы
Подключите файл `src/ClientbaseAPI.php` к вашему проекту.
Создайте экземпляр класса ClientbaseAPI для работы с API:
### Подключите класс src/ClientbaseAPI для работы с API:
```
$cbAPI = new ClientbaseAPI('[URL вашей CRM]', '[Токен для доступа к API']);
```
### Пример: получить список всех пользовательских таблиц
### Как пользоваться
```
$tables = $cbAPI->getTablesList();
@ -19,8 +26,22 @@ foreach ($tables as $table) {
Примеры решения разных задач Вы можете найти в файле `index.php`.
### Вы можете использовать следующие методы для работы с API:
### Все методы
* **getTablesList()** - получить список пользовательских таблиц
* **getTable(int $tableId, bool $includeFields=false)** - получить информацию о таблице, включая информацию о полях
* **getDataList(int $tableId, int $offset=0, int $limit=0, mixed $filter='')** - получить список записей таблицы c ограничением количества и выборкой по фильтру
* **getData(int $tableId, int $lineId)** - получить информацию о записи в таблице
* **getData(int $tableId, int $lineId)** - получить информацию о записи в таблице
* **getFile(int $tableId, int $fieldId, int $lineId, string $fileName)** - получить информацию файле из поля типа "Файл" в записи
* **deleteData(int $tableId, int $lineId)** - удалить запись из таблицы
* **addData(int $tableId, array $data)** - добавить запись в таблицу
* **updateData(int $tableId, int $lineId, array $data)** - обновить запись в таблице
* **getUsersList()** - получить список пользователей
* **getUser(int $userId)** - получить информацию о пользователе
* **getGroupsList()** - получить список групп пользователей
* **getGroup(int $groupId)** - получить информацию о группе пользователей
* **query(string $path, string $method="GET", array $urlQuery = [], $body = null)** - произвольный запрос к API
* getTablesList()

View File

@ -1,5 +1,6 @@
<?php
//use clientbase\api;
/**
* Пример работы с API CRM "Клиентская База"
*

View File

@ -1,6 +1,6 @@
<?php
namespace clientbase\api;
//namespace clientbase\api;
class ClientbaseAPI
{
@ -20,7 +20,7 @@ class ClientbaseAPI
*
* @return array
*/
public function getTablesList()
public function getTablesList(): array
{
$rawResult = $this->query("/table");
$result = $this->_rawToResult($rawResult);
@ -32,9 +32,9 @@ class ClientbaseAPI
* Получить информацию о таблице
* @param $tableId int id таблицы
* @param $includeFields bool Получить информацию о полях таблицы
* @return stdObject
* @return stdClass
*/
public function getTable($tableId, $includeFields = false)
public function getTable(int $tableId, bool $includeFields = false): stdClass
{
$queryParams = $includeFields ? ['include' => 'fields'] : [];
$rawResult = $this->query("/table/" . $tableId, "GET", $queryParams);
@ -53,7 +53,7 @@ class ClientbaseAPI
* @param $filter mixed Фильтр в виде строки или массива
* @return array
*/
public function getDataList($tableId, $offset=0, $limit=0, $filter='')
public function getDataList(int $tableId, int $offset=0, int $limit=0, $filter=''): array
{
$queryParams = ['page' => []];
if ($offset) {
@ -77,7 +77,7 @@ class ClientbaseAPI
*
* @param $tableId int id таблицы
* @param $lineId int id записи в таблице
* @return stdObject
* @return stdClass
*/
public function getData($tableId, $lineId)
{
@ -103,7 +103,7 @@ class ClientbaseAPI
* Перевести массив с данными в формат, подходящий для отправки на сервер
*
* @param $data array Массив с данными для добавления/обновления записи в таблице
* @return stdObject
* @return stdClass
*/
public function bodyFromData($data)
{
@ -119,7 +119,7 @@ class ClientbaseAPI
*
* @param $tableId int id таблицы
* @param $data array Данные для добавления
* @return stdObject
* @return stdClass
*/
public function addData($tableId, $data)
{
@ -137,7 +137,7 @@ class ClientbaseAPI
* @param $tableId int id таблицы
* @param $lineId int id записи в таблице
* @param $data array Данные для обновления
* @return stdObject
* @return stdClass
*/
public function updateData($tableId, $lineId, $data)
{
@ -167,7 +167,7 @@ class ClientbaseAPI
* Получить информацию о пользователе
*
* @param $userId id пользователя
* @return stdObject
* @return stdClass
*/
public function getUser($userId)
{
@ -194,7 +194,7 @@ class ClientbaseAPI
* Получить информацию о группе пользователей
*
* @param $groupId id группы пользователей
* @return stdObject
* @return stdClass
*/
public function getGroup($groupId)
{
@ -211,7 +211,7 @@ class ClientbaseAPI
* @param $fieldId id поля таблицы
* @param $lineId id записи таблицы
* @param $fileName string Название файла
* @return stdObject
* @return stdClass
*/
public function getFile($tableId, $fieldId, $lineId, $fileName)
{
@ -228,7 +228,7 @@ class ClientbaseAPI
* @param $method string метод запроса
* @param $urlQuery array GET-параметры запроса в виде массива
* @param $body stdObject данные для запросов POST, PATCH
* @return stdObject
* @return stdClass
*/
public function query($path, $method="GET", $urlQuery = [], $body = null)
{