sazanof/novofon-api-v2

API integration for Novofon V2 platform

v1.0.1 2025-03-04 09:20 UTC

This package is auto-updated.

Last update: 2025-04-04 15:22:41 UTC


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, согласно документации