# Класс для работы с API 2.0 CRM "Клиентская База"
**ClientbaseAPI** - это PHP-класс, позволяющий работать с методами API 2.0 CRM "Клиентская база".
Документация по работе с API 2.0 на сайте clientbase.ru
## Начало работы
Подключите файл `src/ClientbaseAPI.php` к вашему проекту.
Создайте экземпляр класса ClientbaseAPI для работы с API:
```
$instance = new ClientbaseAPI('[URL вашей CRM]', '[Токен для доступа к API']);
```
## Как пользоваться
Пример использования методов класса для получения данных из CRM:
```php
//Получаем список пользовательских таблиц
$tables = $instance->getTablesList();
foreach ($tables as $table) {
echo 'Таблица с id=' . $table->id . ' называется $table->attributes->table_name . '
';
}
```
Примеры решения разных задач Вы можете найти в файле `index.php`.
## Все методы
### Таблицы
#### getTablesList()
Получить список пользовательских таблиц.
Возвращаемое значение: массив, состоящий из объектов stdObject, содержащих информацию о таблице.
#### getTable(int $tableId, bool $includeFields=false)
Получить информацию о таблице, включая информацию о полях.
Параметры:
* _$tableId_ ID таблицы
* _$includeFields_ Включить в результат информацию о полях таблицы
Возвращаемое значение: объект stdObject, содержащий информацию о таблице.
### Данные в таблицах
* _getDataList(int $tableId, int $offset=0, int $limit=0, mixed $filter='')_ - получить список записей таблицы c ограничением количества и выборкой по фильтру
*_$tableId_ ID таблицы
*_$offset_ Отступ от начала списка
*_$limit_ Количество результатов выборки
*_$filter_ Условие выборки в формате массива или строки
* _getData(int $tableId, int $lineId)_ - получить информацию о записи в таблице
*_$tableId_ ID таблицы
*_$lineId_ ID записи в таблице
* _getFile(int $tableId, int $fieldId, int $lineId, string $fileName)_ - получить информацию о файле из поля типа "Файл" в записи
*_$tableId_ ID таблицы
*_$fieldId_ ID поля, содержащего файл
*_$lineId_ ID записи в таблице
*_$fileName_ Название файла
* _deleteData(int $tableId, int $lineId)_ - удалить запись из таблицы
*_$tableId_ ID таблицы
*_$lineId_ ID записи в таблице
* _addData(int $tableId, array $data)_ - добавить запись в таблицу
*_$tableId_ ID таблицы
*_$data_ массив с данными записи для добавления
* _updateData(int $tableId, int $lineId, array $data)_ - обновить запись в таблице
*_$tableId_ ID таблицы
*_$lineId_ ID записи в таблице
*_$data_ массив с данными записи для обновления
### Пользователи
* _getUsersList()_ - получить список пользователей
* _getUser(int $userId)_ - получить информацию о пользователе
*_$userId_ ID пользователя
### Группы пользователей
* _getGroupsList()_ - получить список групп пользователей
* _getGroup(int $groupId)_ - получить информацию о группе пользователей
*_$groupId_ ID группы пользователей
### Произвольный запрос к API
* _query(string $path, string $method="GET", array $urlQuery = [], $body = null)_ - произвольный запрос к API
*_$path_ Путь команды API
*_$method_ HTTP-метод обращения к API (GET, POST, PATCH, DELETE)
*_$urlQuery_ Query-параметры запроса в формате массива
*_$body_ Body запроса