think.studio / ipro-software-api-php
iProSoftware api client (php)
4.1.0
2024-02-09 11:34 UTC
Requires
- php: ^8.0
- guzzlehttp/guzzle: ^7.0
- nesbot/carbon: ^2.0|^3.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.49
- mikey179/vfsstream: ^2.0@dev
- mockery/mockery: ^1.3
- phpunit/phpunit: ^10.5
- vimeo/psalm: ^5.21
- vlucas/phpdotenv: ^5.6
README
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