badchoice / handesk-php
Handesk PHP sdk
Installs: 27 243
Dependents: 0
Suggesters: 0
Security: 0
Stars: 14
Watchers: 5
Forks: 15
Open Issues: 4
Requires
- illuminate/http: ^7.0
- nesbot/carbon: ^2.0.0
Requires (Dev)
- fzaninotto/faker: ~1.4
- mockery/mockery: 0.9.*
- phpunit/phpunit: ~5.7
README
A Handesk PHP sdk
Check the full project at https://github.com/BadChoice/handesk
Installation
composer require badchoice/handesk-php
Usage
Initializaion
To initialize the Handesk-php sdk you simply need to call to
Handesk::setup('your-handesk-url', 'your-handesk-api-token');
If you use laravel you can use the config/services.php
file and do it like this
// In AppServiceProvider boot method Handesk::setup(config('services.handesk.url'), config('services.handesk.token'));
//In config.services.php file 'handesk' => [ 'url' => env('HANDESK_URL', 'http://handesk.dev/api'), 'token' => env('HANDESK_TOKEN', 'the-api-token') ],
Tickets
To get the open tickets for a requester (it only returns the ticket header, see find below to get the full ticket)
$tickets = (new Ticket)->get('requesterNameOrEmail');
You can ask for the closed, or solved adding a second parameter
$solvedTickets = (new Ticket)->get('requesterNameOrEmail','solved'); $openTickets = (new Ticket)->get('requesterNameOrEmail','solved');
You can create new tickets as well
$ticket_id = (new Ticket)->create( ["name" => "Requester name", "email" => "requester@email.com"], "The ticket subject", "The ticket initial body", ["tag1","tag2"] );
And then fetch a ticket
$ticket = (new Ticket)->find($id); $comments = $ticket->comments; //Includes the initial comment $comments->first()->requester; // ["name" => "Requester name", "email" => "Requester email"]
Adding comments to tickets
$ticket->addComment("Adding a comment"); $ticket->addComment("Adding a comment and solving the ticket", true);
Teams
$team = Team::create("team name", "team email"; (new Team(2))->tickets(); //gets all open tickets for team with id 2 (new Team(2))->tickets('solved'); //gets all solved tickets for team with id 2 (new Team(2))->ticketsCount(); //gets the count of all open tickets for team with id 2 (new Team(2))->ticketsCount('closed'); //gets the count of all closed tickets for team with id 2 (new Team(2))->leads(); //gets the open leads for a team (paginated) (new Team(2))->leadsCount(); //gets the count of all live leads for team with id 2
Leads
To create a lead simply call:
$id = (new Lead)->create([ "email" => "bruce@wayne.com", "body" => "I'm interested in buying this awesome app", "username" => "brucewayne", "name" => "Bruce Wayne", "phone" => "0044 456 567 54", "address" => "Wayne manner", "city" => "Gotham", "postal_code" => "90872", "company" => "Wayne enterprises"] , ["lightning","handesk"] );
Only
name
is a required field
Development
PRs welcome