LeadDeskApiClientLib
This repository holds client library for lead-desk api. It uses HTTPlug to make the client more flexible., (*1)
More info about LD can be found on http://leaddesk.com/, (*2)
More info about HTTPlug can be found on http://docs.php-http.org/en/latest/httplug/introduction.html, (*3)
TODO
- add cache support
- add more lead desk api endpoints (feel free to PR)
- add tests
Installing
Install package via composer, (*4)
composer require bartlomiejbeta/lead-desk-api-client-lib, (*5)
Require one of the following client implementations:, (*6)
- php-http/guzzle6-adapter
- php-http/guzzle5-adapter
- php-http/curl-client
- php-http/socket-client
- php-http/react-adapter
- php-http/buzz-adapter
- php-http/zend-adapter
- php-http/cakephp-adapter
See all implementations: https://packagist.org/providers/php-http/client-implementation, (*7)
For example:
composer require php-http/curl-client, (*8)
General Usage:
$clientCredentials = new ClientCredentials($token);
$httpsClient = HttpClientDiscovery::find();
$msg = MessageFactoryDiscovery::find();
$stream = StreamFactoryDiscovery::find();
$apiClient = new ApiClient($httpsClient, $clientCredentials, $msg, $stream);
/** apiClient can be used to send any lead desk api request. $request must be instace of Psr RequestInterface*/
$apiClient->sendRequest($request);
LeadDeskApi Usage
/** but also you can use some already implemented lead desk endpoints by using this */
$leadDeskApi = new LeadDeskApiClient($apiClient);
/** contact exists -> refere to lead desk api documentation */
$contactFilter = new ContactFilter($phone, $listId);
$existRepresentation = $leadDeskApi->contactExists($contactFilter);// @see ExistsRepresentation
/** find contact -> refere to lead desk api documentation */
$contactFilter = new ContactFilter($phone, $listId);
$findRepresentation = $leadDeskApi->findContact($contactFilter);// @see FindRepresentation
/** get contact -> refere to lead desk api documentation */
$contactIdFilter = new ContactIdFilter($contactId);
$getRepresentation = $leadDeskApi->getContact($contactIdFilter);// @see GetRepresentation
/** delete contact -> refere to lead desk api documentation */
$contactIdFilter = new ContactIdFilter($contactId);
$existRepresentation = $leadDeskApi->deleteContact($contactFilter);// @see ExistsRepresentation
/** create contact -> refere to lead desk api documentation */
$contactRepresentation = (new ContactRepresentation())
->setPhone($phone)
...;
$createRepresentation = $leadDeskApi->createContact($contactRepresentation);// @see CreateRepresentation