valsplat / harvest-php-client
A PHP Client for the Harvest V2 API
Installs: 94
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 3
Forks: 0
Open Issues: 0
pkg:composer/valsplat/harvest-php-client
Requires
- php: >=7.1
- guzzlehttp/guzzle: ~6.0
This package is auto-updated.
Last update: 2021-09-11 07:46:01 UTC
README
(Unofficial) Harvest v2 API Client for PHP
Contributing
$ git clone git@github.com:valsplat/harvest-php-client.git
$ cd harvest-php-client
$ composer update -o
Installation
$ composer require valsplat/harvest-php-client
Endpoints
This API client is very much a work in progress and is incomplete at this time. You can only use the Client, Project, Task, TaskAssignment, User and UserAssignment endpoints. Feel free to create a Pull Request to increase coverage.
Authentication
Authentication is done via providing your account ID and a personal access token:
$connection = new \Valsplat\Harvest\Connection();
$connection->setAccessToken('ACCESS_TOKEN');
$connection->setAccountId('ACCOUNT_ID');
Get your token and account ID here: https://id.getharvest.com/oauth2/access_tokens/new
Errors
The API client throws two exceptions:
\Valsplat\Harvest\Exceptions\NotFoundException- Entity could not be found\Valsplat\Harvest\Exceptions\ApiException- Generic Api exception
Basic Usage
Each endpoint is accessible via its own method on the \Valsplat\Harvest\Harvest instance. The method name is singular, camelcased:
$vlak = new \Valsplat\Harvest\Harvest($connection);
$vlak->TaskAssignment();
Generic methods & filters
list((array)params)- get a collection of entities. You find the available params per endpoint in the Harvest docs.get((int)id)- get a single entity via its id.create()- create given entity.update()- update given entity.save()- convenience method; callsupdate()if the entity already exists,create()otherwise.delete()- delete given entity.
Usage examples
Authentication and usage examples: example.php
TODO
- Tests w/ mocked http client
- Complete endpoint support
- Automatic marshaling of attributes