callbackhunter/apiv2library

Official library for APIv2 of CallbackHunter

v2.0.0 2018-08-03 13:13 UTC

README

Официальная библиотека для APIv2 CallbackHunter.

Status

Build Status Coverage Status

Документацию по доступным методам можно найти по ссылке

Внимание! API находится в стадии разработки.

Installation

Для того, чтобы подключить библиотеку в свой проект, можно воспользоваться composer

composer require callbackhunter/apiv2library

Usage

Примеры использования

Получение и изменени виджетов

use CallbackHunterAPIv2\Entity\Widget\Settings\Factory\ImageForUploadFactory;
use CallbackHunterAPIv2\Entity\Widget\Settings\Images\ButtonLogoImage;
use CallbackHunterAPIv2\MainFactory;
use CallbackHunterAPIv2\ValueObject\Pagination;

$userId = 123;
$key = md5('test');

$pagination = new Pagination;
$repository = MainFactory::makeWidgetRepositoryFactory()->make($userId, $key);
while ($widgets = $repository->getList($pagination)) {
    $pagination->nextPage();
    foreach ($widgets as $widget) {
        if ($widget->isActive()) {
            $widget->setIsActive(false);
            $repository->save($widget);
        }
    }
}

try {
    $uploadFactory = new ImageForUploadFactory;
    $buttonLogo = new ButtonLogoImage;
    $image = $uploadFactory->createFromPath('path/to/image.png');
    $buttonLogo->setForUpload($image);

    $widget = $repository->get('my widget uid');
    $widget->getSettings()->getImages()->getButtonLogo()->setForUpload(
        $buttonLogo->getForUpload()
    );
    $repository->save($widget);
} catch (\CallbackHunterAPIv2\Exception\ChangeOfPaidPropertiesException $e) {
    echo 'You must pay for change: ', implode(
        array_keys($e->getInvalidParams())
    );
} catch (\CallbackHunterAPIv2\Exception\ResourceNotFoundException $e) {
    echo 'Widget not found';
} catch (\CallbackHunterAPIv2\Exception\WidgetValidateException $e) {
    echo 'You trying to upload not an image';
} catch (\CallbackHunterAPIv2\Exception\Exception $e) {
    echo 'API Error: '.$e->getMessage();
} catch (\GuzzleHttp\Exception\GuzzleException $e) {
    echo 'HTTP Exception: '.$e->getMessage();
}

Получение информации о тарификации аккаунта

$userId = 123456;
$accountId = 465789;
$key = 'fdkjhdfkjhdfkjdfhkjhfdkjhfkj';

try {
    $tariffStatusRepository = MainFactory::makeTariffStatusRepositoryFactory()->make($userId, $key);
    $result = $tariffStatusRepository->get($accountId);
    var_dump($result);
} catch (\CallbackHunterAPIv2\Exception\ResourceNotFoundException $e) {
    echo 'Tariff status for account not found';
} catch (\CallbackHunterAPIv2\Exception\Exception $e) {
    echo 'API Error: ' . $e->getMessage();
} catch (\GuzzleHttp\Exception\GuzzleException $e) {
    echo 'HTTP Exception: '. $e->getMessage();
} catch (\Exception $e) {
    echo 'Exception: '. $e->getMessage();
}

Получение информации из профиля текущего пользователя

use CallbackHunterAPIv2\ValueObject\Credentials as CBHCredentials;
use CallbackHunterAPIv2\Client as CBHClient;
use CallbackHunterAPIv2\MainFactory;

$userId = 123456;
$key = 'fdkjhdfkjhdfkjdfhkjhfdkjhfkj';
try {
    $profileRepository = MainFactory::makeCurrentProfileRepositoryFactory()->make($userId, $key);
    $result = $profileRepository->get();

    print_r($result);    
} catch (\CallbackHunterAPIv2\Exception\ResourceNotFoundException $e) {
    echo 'Current user profile not found';
} catch (\CallbackHunterAPIv2\Exception\Exception $e) {
    echo 'API Error: ' . $e->getMessage();
} catch (\GuzzleHttp\Exception\GuzzleException $e) {
    echo 'HTTP Exception: '. $e->getMessage();
} catch (\Exception $e) {
    echo 'Exception: '. $e->getMessage();
}

Активация тестового периода у аккаунта

use CallbackHunterAPIv2\ValueObject\ActivateTrialArguments;
use CallbackHunterAPIv2\MainFactory;

$userId = 123;
$key = 'test';
$accountUID = 12345;

try {
    $trialArguments = new ActivateTrialArguments();
    $trialArguments['test'] = '12345';
    $repository = MainFactory::makeTrialRepositoryFactory()->make($userId, $key);
    $result = $repository->activateTrial($accountUID, $trialArguments->convertToArray());
    var_dump($result);
} catch (RepositoryException $ex) {
    echo $ex->getMessage();
} catch (GuzzleException $ex) {
    echo $ex->getMessage();
}

Добавление телефона виджету

use CallbackHunterAPIv2\MainFactory;
use CallbackHunterAPIv2\Entity\Widget\Phone\Phone;

$userId = 123;
$key = 'test';

$uid = md5('test');

$phone = new Phone;
$phone->setPhone('911');

$repository = MainFactory::makeWidgetPhoneRepositoryFactory()->make($userId, $key);

try {
    $response = $repository->save($uid, $phone);
    var_dump($response);
} catch (\CallbackHunterAPIv2\Exception\RepositoryException $e) {
    echo $e->getMessage();
} catch (\GuzzleHttp\Exception\GuzzleException $e) {
    echo $e->getMessage();
} catch (\Exception $e) {
    echo $e->getMessage();
}