Skip to content

Commit a0d4fea

Browse files
committed
Tweaked a few things and added a README
1 parent f419576 commit a0d4fea

21 files changed

+164
-78
lines changed

README.md

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# Laravel Freshworks CRM API Wrapperd
2+
3+
This Laravel package will allow you to connect to Freshworks CRM API using a Laravel like syntax.
4+
5+
See [Freshworks CRM API](https://developers.freshworks.com/crm/api) documentation for details on what can be done with their API.
6+
7+
## Installation
8+
9+
```shell
10+
composer require codegreencreative/laravel-freshworks
11+
```
12+
13+
## Configuration
14+
15+
```shell
16+
php artisan vendor:publish --tag="laravel-freshworks"
17+
```
18+
19+
## Environment
20+
21+
Add your Freshworks API key and domain. Your domain will be the subdomain you chose when creating yoour account. `{subdomain}`.myfreshworks.com
22+
23+
```
24+
FRESHWORKS_API_KEY=
25+
FRESHWORKS_DOMAIN=
26+
```
27+
28+
## Examples
29+
30+
When an object is returned back from Freshworks, you have two options when returning that object. `->toObject()` or `->toArray()`
31+
32+
```php
33+
// Create a new contact=
34+
\Freshworks::contacts()->create([
35+
'first_name' => 'Jane',
36+
'last_name' => 'Doe',
37+
'email' => '[email protected]',
38+
'phone' => '555-555-5555'
39+
]);
40+
41+
// Update an existing contact
42+
\Freshworks::contacts()->update($contact_id, ['email' => '[email protected]']);
43+
44+
// Get all views/filters for contacts
45+
$views = \Freshworks::contacts()->filters()->toObject();
46+
47+
// List all contacts using a view
48+
\Freshworks::contacts()->all($view_id)->toObject()
49+
```
50+
51+
See [Freshworks CRM API](https://developers.freshworks.com/crm/api) documentation for details on what can be done with their API.

src/Api/Accounts.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,19 @@
33
namespace CodeGreenCreative\Freshworks\Api;
44

55
use CodeGreenCreative\Freshworks\Client;
6-
use CodeGreenCreative\Freshworks\Traits\HasFilters;
76
use CodeGreenCreative\Freshworks\Traits\CanBeForgotten;
87
use CodeGreenCreative\Freshworks\Traits\CanBulkDestroy;
98
use CodeGreenCreative\Freshworks\Traits\CanCloneItself;
9+
use CodeGreenCreative\Freshworks\Traits\CanPaginate;
10+
use CodeGreenCreative\Freshworks\Traits\HasFilters;
1011
use CodeGreenCreative\Freshworks\Traits\PerformsCrudOperations;
1112

1213
class Accounts extends Client
1314
{
1415
use PerformsCrudOperations;
1516
use CanCloneItself;
1617
use CanBulkDestroy;
18+
use CanPaginate;
1719
use HasFilters;
1820
use HasFields;
1921
use CanBeForgotten;

src/Api/Appointments.php

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,14 @@
22

33
namespace CodeGreenCreative\Freshworks\Api;
44

5-
use Psr\Http\Message\ResponseInterface;
65
use CodeGreenCreative\Freshworks\Client;
6+
use CodeGreenCreative\Freshworks\Traits\CanPaginate;
77
use CodeGreenCreative\Freshworks\Traits\PerformsCrudOperations;
88

99
class Appointments extends Client
1010
{
1111
use PerformsCrudOperations;
12+
use CanPaginate;
1213

1314
private $resource = 'appointments';
14-
15-
public function all(array $query = []): ResponseInterface
16-
{
17-
return $this->client->request('GET', '{$this->resource}', ['query' => $query]);
18-
}
1915
}

src/Api/Configuration.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ class Configuration extends Client
1313
* @param array $arguments [description]
1414
* @return [type] [description]
1515
*/
16-
public function __call(string $name, array $arguments = [])
16+
public function __call(string $name, array $arguments = []) \CodeGreenCreative\Freshworks\Client
1717
{
18-
return $this->client->request('GET', 'selector/' . Str::snake($name));
18+
return $this->request('GET', 'selector/' . Str::snake($name));
1919
}
2020
}

src/Api/Contacts.php

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,29 @@
22

33
namespace CodeGreenCreative\Freshworks\Api;
44

5-
use Psr\Http\Message\ResponseInterface;
65
use CodeGreenCreative\Freshworks\Client;
7-
use CodeGreenCreative\Freshworks\Traits\HasFields;
8-
use CodeGreenCreative\Freshworks\Traits\HasFilters;
96
use CodeGreenCreative\Freshworks\Traits\CanBeForgotten;
107
use CodeGreenCreative\Freshworks\Traits\CanBulkDestroy;
118
use CodeGreenCreative\Freshworks\Traits\CanCloneItself;
9+
use CodeGreenCreative\Freshworks\Traits\CanPaginate;
10+
use CodeGreenCreative\Freshworks\Traits\HasFields;
11+
use CodeGreenCreative\Freshworks\Traits\HasFilters;
1212
use CodeGreenCreative\Freshworks\Traits\PerformsCrudOperations;
1313

1414
class Contacts extends Client
1515
{
1616
use PerformsCrudOperations;
1717
use CanCloneItself;
1818
use CanBulkDestroy;
19+
use CanPaginate;
1920
use HasFilters;
2021
use HasFields;
2122
use CanBeForgotten;
2223

2324
private $resource = 'contacts';
2425

25-
public function activities(int $id): ResponseInterface
26+
public function activities(int $id): \CodeGreenCreative\Freshworks\Client
2627
{
27-
return $this->client->request('GET', '{$this->resource}/{$id}/activities');
28+
return $this->request('GET', "{$this->resource}/{$id}/activities");
2829
}
2930
}

src/Api/Deals.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,19 @@
33
namespace CodeGreenCreative\Freshworks\Api;
44

55
use CodeGreenCreative\Freshworks\Client;
6-
use CodeGreenCreative\Freshworks\Traits\HasFilters;
76
use CodeGreenCreative\Freshworks\Traits\CanBeForgotten;
87
use CodeGreenCreative\Freshworks\Traits\CanBulkDestroy;
98
use CodeGreenCreative\Freshworks\Traits\CanCloneItself;
9+
use CodeGreenCreative\Freshworks\Traits\CanPaginate;
10+
use CodeGreenCreative\Freshworks\Traits\HasFilters;
1011
use CodeGreenCreative\Freshworks\Traits\PerformsCrudOperations;
1112

1213
class Deals extends Client
1314
{
1415
use PerformsCrudOperations;
1516
use CanCloneItself;
1617
use CanBulkDestroy;
18+
use CanPaginate;
1719
use HasFilters;
1820
use HasFields;
1921
use CanBeForgotten;

src/Api/Phone.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
namespace CodeGreenCreative\Freshworks\Api;
44

5-
use Psr\Http\Message\ResponseInterface;
65
use CodeGreenCreative\Freshworks\Client;
76

87
class Phone extends Client
@@ -14,8 +13,8 @@ class Phone extends Client
1413
* @param array $query [description]
1514
* @return [type] [description]
1615
*/
17-
public function log(array $parameters = []): ResponseInterface
16+
public function log(array $parameters = []): \CodeGreenCreative\Freshworks\Client
1817
{
19-
return $this->client->request('GET', '{$this->resource}', ['body' => json_encode($parameters)]);
18+
return $this->request('POST', $this->resource, ['body' => json_encode($parameters)]);
2019
}
2120
}

src/Api/SalesActivities.php

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,14 @@
22

33
namespace CodeGreenCreative\Freshworks\Api;
44

5-
use Psr\Http\Message\ResponseInterface;
65
use CodeGreenCreative\Freshworks\Client;
6+
use CodeGreenCreative\Freshworks\Traits\CanPaginate;
77
use CodeGreenCreative\Freshworks\Traits\PerformsCrudOperations;
88

99
class SalesActivities extends Client
1010
{
1111
use PerformsCrudOperations;
12+
use CanPaginate;
1213

1314
private $resource = 'sales_activities';
14-
15-
public function all(array $query = []): ResponseInterface
16-
{
17-
return $this->client->request('GET', '{$this->resource}', ['query' => $query]);
18-
}
1915
}

src/Api/Search.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
namespace CodeGreenCreative\Freshworks\Api;
44

5-
use Psr\Http\Message\ResponseInterface;
65
use CodeGreenCreative\Freshworks\Client;
76

87
class Search extends Client
@@ -14,8 +13,8 @@ class Search extends Client
1413
* @param array $query [description]
1514
* @return [type] [description]
1615
*/
17-
public function lookup(array $query = []): ResponseInterface
16+
public function lookup(array $query = []): \CodeGreenCreative\Freshworks\Client
1817
{
19-
return $this->client->request('GET', '{$this->resource}', ['query' => $query]);
18+
return $this->request('GET', $this->resource, ['query' => $query]);
2019
}
2120
}

src/Api/Tasks.php

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,14 @@
22

33
namespace CodeGreenCreative\Freshworks\Api;
44

5-
use Psr\Http\Message\ResponseInterface;
65
use CodeGreenCreative\Freshworks\Client;
6+
use CodeGreenCreative\Freshworks\Traits\CanPaginate;
77
use CodeGreenCreative\Freshworks\Traits\PerformsCrudOperations;
88

99
class Tasks extends Client
1010
{
1111
use PerformsCrudOperations;
12+
use CanPaginate;
1213

1314
private $resource = 'tasks';
14-
15-
public function all(array $query = []): ResponseInterface
16-
{
17-
return $this->client->request('GET', '{$this->resource}', ['query' => $query]);
18-
}
1915
}

0 commit comments

Comments
 (0)