keepcloud / freshdesk-laravel
Laravel 7 and 8 package for the Freshdesk API (v2)
Installs: 1 333
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:laravel-package
Requires
- php: >7.2.5
- illuminate/support: 7.*|8.*
- keepcloud/freshdesk-php-sdk: ^1.0
This package is auto-updated.
Last update: 2024-10-16 20:05:53 UTC
README
This is a service provider for interacting with the Freshdesk API v2 via the freshdesk-php-sdk in Laravel and Lumen applications.
Installation
To add this bundle to your app, use Composer.
Add keepcloud/freshdesk-laravel
to your composer.json file:
{ "require": { "keepcloud/freshdesk-laravel": "^1.0" } }
Then run:
composer update
You must then register the provider in your application.
Register the provider in the providers
key in your config/app.php
:
'providers' => array( // ... Keepcloud\Laravel\Freshdesk\FreshdeskServiceProvider::class, )
Then add the Freshdesk facade alias in the aliases
key in your config/app.php
:
'aliases' => array( // ... 'Freshdesk' => Keepcloud\Laravel\Freshdesk\FreshdeskFacade::class, )
Configuration
To customize the configuration file, publish the package configuration using Artisan.
php artisan vendor:publish
Update the settings in the app/config/freshdesk.php
file.
return [ 'api_key' => 'your_freshdesk_api_key', 'domain' => 'your_freshdesk_domain', ];
Accessing the Freshdesk API
In a controller you can access Freshdesk resource as follows:
//Contacts $contacts = Freshdesk::contacts()->update($contactId, $data); //Agents $me = Freshdesk::agents()->current(); //Companies $company = Freshdesk::companies()->create($data); //Groups $deleted = Freshdesk::groups()->delete($groupId); //Tickets $ticket = Freshdesk::tickets()->view($filters); //Time Entries $time = Freshdesk::timeEntries()->all($ticket['id']); //Conversations $ticket = Freshdesk::conversations()->note($ticketId, $data); //Categories $newCategory = Freshdesk::categories()->create($data); //Forums $forum = Freshdesk::forums()->create($categoryId, $data); //Topics $topics =Freshdesk::topics()->monitor($topicId, $userId); //Comments $comment = Freshdesk::comments()->create($forumId); //Email Configs $configs = Freshdesk::emailConfigs()->all(); //Products $product = Freshdesk::products()->view($productId); //Business Hours $hours = Freshdesk::businessHours()->all(); //SLA Policy $policies = Freshdesk::slaPolicies()->all();
Filtering
All GET
requests accept an optional array $query
parameter to filter
results. For example:
//Page 2 with 50 results per page $page2 = Freshdesk::forums()->all(['page' => 2, 'per_page' => 50]); //Tickets for a specific customer $tickets = Freshdesk::tickets()->view(['company_id' => $companyId]);
Please read the Freshdesk documentation for further information on
filtering GET
requests.
Contributing
This is a work in progress and PRs are welcome. Please read the contributing guide.
Author
The library was written and maintained by Edison Costa