sazanof / novofon-api-v2
API integration for Novofon V2 platform
v1.0.1
2025-03-04 09:20 UTC
Requires
- php: ^8.3
- guzzlehttp/guzzle: ^7.9
- psr/http-message: ^2.0
Requires (Dev)
- symfony/var-dumper: ^7.1
README
Требования
- PHP >=8.3
Установка
composer require sazanof/novofon-api-v2
Инициализация
require 'vendor/autoload.php'; use Sazanof\NovofonApiV2\NovofonDataApi; $app = NovofonDataApi::initialize('appid', 'token');
с использованием дополнительных параметров для Guzzle Client:
$options = [ 'verify'=>false ]; $app = NovofonDataApi::initialize( 'appid', 'token', $options );
Фильтрация
Простая
$app->filter->rule('phone_number', '=', '123456');
Сложная
/** FILTER FOR SIP LINES */ $app->filter->group(function (\Sazanof\NovofonApiV2\Builder\FilterGroup $group) { $group->or(function (\Sazanof\NovofonApiV2\Builder\FilterGroup $group) { $group->add('phone_number', '=', '123456'); $group->add('phone_number', '!=', '666'); $group->or(function (\Sazanof\NovofonApiV2\Builder\FilterGroup $group) { $group->add('phone_number', '=', '777'); $group->add('phone_number', '=', '9999'); }); }); }, 'and');
Сортировка результатов
$app->orderBy('employee_id', \Sazanof\NovofonApiV2\Builder\Sort::DESC);
Ограничение результатов
$app ->setLimit(10) ->setOffset(5) ->removeLimit() ->removeOffset();
Методы
По мере разработки, список поддерживаемых методов будет пополняться. Доступные методы можно найти в классе NovofonDataAp.php
Сущности
Каждый метод возвращает объект ответа, наследуемый от класса BaseResponse, содержащий коллекцию с классами сущностей.
try { foreach ($app->getSipLines()->lines->items() as $item) { dump($item->phoneNumber); } } catch (\GuzzleHttp\Exception\GuzzleException $e) { // } catch (\Sazanof\NovofonApiV2\Exceptions\BaseError $e) { // } // OR foreach ($app->setLimit(10)->setOffset(33)->getEmployees()->employees->items() as $item) { dump($item->extension); } // Virtual Lines foreach ($app->getVirtualNumbers()->numbers->items() as $virtualNumber) { dump($virtualNumber->scenarios); // -> \Sazanof\NovofonApiV2\Collections\ScenariosCollection::class dump($virtualNumber->status); }
Обработка ошибок
Каждый метод при может выдавать исключение BaseError, содержащий класс ошибки, переданный из API Novofon 2.0, согласно документации