think.studio/ipro-software-api-php

iProSoftware api client (php)

4.1.0 2024-02-09 11:34 UTC

This package is auto-updated.

Last update: 2024-12-09 13:08:43 UTC


README

Packagist License Packagist Version Total Downloads Build Status Code Coverage Scrutinizer Code Quality

Unofficial IproSoftware api implementation.

Installation

You can install the package via composer:

    composer require think.studio/ipro-software-api-php

Simple example

    $iproSoftwareClient = new \IproSoftwareApi\IproSoftwareClient([
        'api_host' => 'my-iprosoftware-api-host',
        'client_id' => 'my-iprosoftware-client-id',
        'client_secret' => 'my-iprosoftware-client-secret',
    ]);
    
    $response = $iproSoftwareClient->getBookingRulesList();

    $responseBody = json_decode($response->getBody());

Note: All predefined api requests name you can find here

Configure the client

The Trello client needs a few configuration settings to operate successfully.

Set configuration when creating client

$iproSoftwareClient = new \IproSoftwareApi\IproSoftwareClient([
    'api_host' => 'my-iprosoftware-api-host',
    'client_id' => 'my-iprosoftware-client-id',
    'client_secret' => 'my-iprosoftware-client-secret',
    'cache_manager' => new MyDatabaseAccessTokenCacheManager(),
    'client_conf' => [
        'timeout' => 15,
        'http_errors' => false,
        'headers' => [
            'Accept' => 'application/json',
        ]
    ]
]);

Set access token cache manager after initialisation

    $iproSoftwareClient = new \IproSoftwareApi\IproSoftwareClient([
        'api_host' => 'my-iprosoftware-api-host',
        'client_id' => 'my-iprosoftware-client-id',
        'client_secret' => 'my-iprosoftware-client-secret'
    ]);
    
    $iproSoftwareClient->setAccessTokenCacheManager(new MyDatabaseAccessTokenCacheManager())

Set your own http client if you want full control over requests

    $iproSoftwareClient = new \IproSoftwareApi\IproSoftwareClient();
    
    $iproSoftwareClient->setHttpClient(new MyOwnHttpClient($credentials))

Handling exceptions

If you try to query with the wrong configuration, you will get an exception IproSoftwareApi\Exceptions\IproSoftwareApiException. If the server fails to get the access token, you will receive IproSoftwareApi\Exceptions\IproSoftwareApiAccessTokenException

    try {
        $response = $iproSoftwareClient->getBookingRulesList();
    } catch (IproSoftwareApi\Exceptions\IproSoftwareApiAccessTokenException $e) {
        $code = $e->getCode(); // Http status code from response
        $reason = $e->getMessage(); // Http status reason phrase
        $httpResponse = $e->getResponse(); // Psr\Http\Message\ResponseInterface from http client
    }

Testing

  composer test

Credits

  • Think Studio