trekksoft / sdk
TrekkSoft SDK
Requires
- php: >=5.5.9
- doctrine/collections: ^1.3
- league/oauth2-client: ^1.3
- moneyphp/money: >=3.0.0 <3.2.0
- monolog/monolog: ^1.18
- somoza/oauth2-client-middleware: ^0.2.5
Requires (Dev)
- phpunit/phpunit: ^7
README
Overview
This is PHP SDK for Trekksoft API.
Installation
To install SDK into your project you need to use composer (see https://getcomposer.org/). And then run:
composer require trekksoft/sdk
Usage
Basic Setup
$credentials = [
'clientId' => '<your-client-id>',
'clientSecret' => '<your-client-secret>',
];
$provider = new \TrekkSoft\SDK\OAuth2\Provider\TrekkSoftProvider($credentials);
//Get activities list
$activities = $provider->getActivities();
//Get availabilities list
$availabilities = $provider->getAvailabilities();
//Get merchants a list of merchants which you can access
$merchants = $provider->getMerchants();
Demo
Check demo
folder for example of usage of this SDK. To make it running you will
need to copy config.inc.php.dist
to config.inc.php
and configure your client id and client secret in the new file.
Then you can put these files under your webroot folder and run it though web server. E.g. http://localhost/trekksoft/activities.php
Models
All the data received from API is automatically wrapped into objects to be able to work with data easier.
You can check these models under src/Model
folder. High level models are Activity
and Availability
.
Others are nested under these models.
So for example to get occupancy of the availability item you need to do the following: $availability->getCapacityInfo()->getOccupancy()
.
Filter criteria
When making requests you can can use criteria objects for setting filter options:
TrekkSoft\SDK\Criteria\ActivityCriteria
for activitiesTrekkSoft\SDK\Criteria\AvailabilityCriteria
for availabilitiesTrekkSoft\SDK\Criteria\MerchantCriteria
for merchants
E.g. the following will only return all activities of bus2alps merchant which contain "rome":
$criteria = new \TrekkSoft\SDK\Criteria\ActivityCriteria();
$criteria->setMerchant('bus2alps');
$criteria->setTitleLike('rome');
Availability Criteria example:
$criteria = new \TrekkSoft\SDK\Criteria\AvailabilityCriteria();
$criteria->setMerchant('demo');
$criteria->resetSeats()->resetBookingTime()->setStartsFrom(null)->setWithGuests(true);
Iterators
Each of the requests to provider returns iterator as a result rather than direct array of the requested objects.
This is usable to automatically handle pagination and avoid sending large chunks of data. As you loop through iterator additional requests might be sent to the server as needed.
If you want to get a flat array still, use iterator_to_array()
method.
Maintainers
This project is maintained by TrekkSoft Team.