saas-cb/spr-php-client

PHP 8.4 client for SAAS CB Gateway SPR API

Maintainers

Package info

github.com/RentCeisy/php-spr-client

pkg:composer/saas-cb/spr-php-client

Statistics

Installs: 2

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v0.0.2 2026-06-22 16:26 UTC

This package is auto-updated.

Last update: 2026-06-22 16:27:03 UTC


README

PHP 8.4 SDK для взаимодействия с SPR-роутами gateway сервиса SAAS CB.

Требования

  • PHP ^8.4
  • Composer

Установка

composer require saas-cb/spr-php-client

Быстрый старт

use SaasCb\SprClient\Client;
use SaasCb\SprClient\Configuration;

$config = new Configuration('https://gateway.example.com', 'your-api-key');
$client = new Client($config);

Проверка доступности (/ping)

ping() не требует API-ключа:

$config = new Configuration('https://gateway.example.com');
$client = new Client($config);

$ping = $client->ping();
if ($ping->isSpr()) {
    echo "Gateway и SPR доступны\n";
}

Деревья скоринга

// Список деревьев
$response = $client->listTrees();
foreach ($response->getData()->getItems() as $tree) {
    echo $tree->getName() . "\n";
}

// Список деревьев с фильтрацией, сортировкой и пагинацией
$filters = [
    'name' => 'test',
    'page' => 1,
    'limit' => 20,
    'sort' => 'name',
    'order' => 'asc',
];
$response = $client->withQueryParameters(array_filter($filters))->listTrees();
$data = $response->getData();
echo "Страница {$data->getPage()} из " . ceil($data->getTotal() / $data->getLimit()) . "\n";

// Получить дерево
$tree = $client->getTree('tree-uuid');

// Создать дерево
$tree = $client->createTree(new CreateTreeRequest(
    name: 'My tree',
    config: ['nodes' => [], 'edges' => []],
));

// Обновить дерево
$tree = $client->updateTree('tree-uuid', new UpdateTreeRequest(name: 'Updated'));

// Удалить дерево
$client->deleteTree('tree-uuid');

Запуск скоринга

use SaasCb\SprClient\Request\EvaluateRequest;

$request = (new EvaluateRequest(customerId: 123, applicationId: 'app-456'))
    ->addContextField('birth_date', '1990-01-01')
    ->addContextField('passport', '1234567890');

$reference = $client->evaluateTree('tree-uuid', $request);
echo $reference->getRunUuid();

Статус и результат прогона

$status = $client->getRunStatus('run-uuid');
$result = $client->getRunResult('run-uuid');

Список доступных скорингов

$response = $client->listScorings();
foreach ($response->getItems() as $scoring) {
    echo $scoring->getCode() . ': ' . $scoring->getName() . "\n";
}

// С фильтром по категории
$response = $client->listScorings('basic');

Входные поля дерева

$inputs = $client->getTreeInputs('tree-uuid');
foreach ($inputs as $name => $scoringInput) {
    echo $name . ': ' . $scoringInput->getCode() . "\n";
}

Обработка ошибок

SDK бросает типизированные исключения:

use SaasCb\SprClient\Exception\AuthenticationException;
use SaasCb\SprClient\Exception\NotFoundException;
use SaasCb\SprClient\Exception\ValidationException;
use SaasCb\SprClient\Exception\ServerException;

try {
    $client->getTree('unknown-uuid');
} catch (NotFoundException $e) {
    echo "Не найдено (HTTP {$e->getHttpStatusCode()}): {$e->getMessage()}\n";
} catch (AuthenticationException $e) {
    echo "Ошибка авторизации\n";
} catch (ValidationException $e) {
    echo "Ошибка валидации: {$e->getMessage()}\n";
} catch (ServerException $e) {
    echo "Ошибка сервера: {$e->getMessage()}\n";
}

Запуск тестов

composer install
vendor/bin/phpunit

Примеры

Смотри папку examples/:

  • ping.php — проверка доступности gateway/SPR.
  • list_trees.php — список деревьев.
  • evaluate.php — запуск скоринга и polling результата.

Лицензия

Proprietary.