Skip to content

Commit f419576

Browse files
committed
Added more endpoints and trait abilities
1 parent e036cc4 commit f419576

15 files changed

+270
-41
lines changed

src/Api/Accounts.php

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?php
2+
3+
namespace CodeGreenCreative\Freshworks\Api;
4+
5+
use CodeGreenCreative\Freshworks\Client;
6+
use CodeGreenCreative\Freshworks\Traits\HasFilters;
7+
use CodeGreenCreative\Freshworks\Traits\CanBeForgotten;
8+
use CodeGreenCreative\Freshworks\Traits\CanBulkDestroy;
9+
use CodeGreenCreative\Freshworks\Traits\CanCloneItself;
10+
use CodeGreenCreative\Freshworks\Traits\PerformsCrudOperations;
11+
12+
class Accounts extends Client
13+
{
14+
use PerformsCrudOperations;
15+
use CanCloneItself;
16+
use CanBulkDestroy;
17+
use HasFilters;
18+
use HasFields;
19+
use CanBeForgotten;
20+
21+
private $resource = 'sales_accounts';
22+
}

src/Api/Appointments.php

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
3+
namespace CodeGreenCreative\Freshworks\Api;
4+
5+
use Psr\Http\Message\ResponseInterface;
6+
use CodeGreenCreative\Freshworks\Client;
7+
use CodeGreenCreative\Freshworks\Traits\PerformsCrudOperations;
8+
9+
class Appointments extends Client
10+
{
11+
use PerformsCrudOperations;
12+
13+
private $resource = 'appointments';
14+
15+
public function all(array $query = []): ResponseInterface
16+
{
17+
return $this->client->request('GET', '{$this->resource}', ['query' => $query]);
18+
}
19+
}

src/Api/Contacts.php

Lines changed: 16 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -2,53 +2,28 @@
22

33
namespace CodeGreenCreative\Freshworks\Api;
44

5+
use Psr\Http\Message\ResponseInterface;
56
use CodeGreenCreative\Freshworks\Client;
6-
use Illuminate\Support\Str;
7+
use CodeGreenCreative\Freshworks\Traits\HasFields;
8+
use CodeGreenCreative\Freshworks\Traits\HasFilters;
9+
use CodeGreenCreative\Freshworks\Traits\CanBeForgotten;
10+
use CodeGreenCreative\Freshworks\Traits\CanBulkDestroy;
11+
use CodeGreenCreative\Freshworks\Traits\CanCloneItself;
12+
use CodeGreenCreative\Freshworks\Traits\PerformsCrudOperations;
713

814
class Contacts extends Client
915
{
10-
public function create(array $payload)
11-
{
12-
return $this->client->request('POST', 'contacts', json_encode($payload));
13-
}
14-
15-
public function read(int $id)
16-
{
17-
return $this->client->request('GET', 'contacts/{$id}');
18-
}
19-
20-
public function update(int $id, array $payload)
21-
{
22-
return $this->client->request('PUT', 'contacts/{$id}', json_encode($payload));
23-
}
24-
25-
public function delete(int $id)
26-
{
27-
return $this->client->request('DELETE', 'contacts/{$id}');
28-
}
16+
use PerformsCrudOperations;
17+
use CanCloneItself;
18+
use CanBulkDestroy;
19+
use HasFilters;
20+
use HasFields;
21+
use CanBeForgotten;
2922

30-
public function clone(int $id)
31-
{
32-
return $this->client->request('POST', 'contacts/{$id}/clone');
33-
}
34-
35-
public function forget(int $id)
36-
{
37-
return $this->client->request('DELETE', 'contacts/{$id}/forget');
38-
}
39-
40-
public function bulkDelete(array $ids, array $payload)
41-
{
42-
return $this->client->request('DELETE', 'contacts/bulk_destroy', json_encode($payload));
43-
}
44-
45-
public function fields()
46-
{
47-
return $this->client->request('GET', 'settings/contacts/fields');
48-
}
23+
private $resource = 'contacts';
4924

50-
public function activities(int $id)
25+
public function activities(int $id): ResponseInterface
5126
{
52-
return $this->client->request('GET', 'contacts/{$id}/activities');
27+
return $this->client->request('GET', '{$this->resource}/{$id}/activities');
5328
}
5429
}

src/Api/Deals.php

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?php
2+
3+
namespace CodeGreenCreative\Freshworks\Api;
4+
5+
use CodeGreenCreative\Freshworks\Client;
6+
use CodeGreenCreative\Freshworks\Traits\HasFilters;
7+
use CodeGreenCreative\Freshworks\Traits\CanBeForgotten;
8+
use CodeGreenCreative\Freshworks\Traits\CanBulkDestroy;
9+
use CodeGreenCreative\Freshworks\Traits\CanCloneItself;
10+
use CodeGreenCreative\Freshworks\Traits\PerformsCrudOperations;
11+
12+
class Deals extends Client
13+
{
14+
use PerformsCrudOperations;
15+
use CanCloneItself;
16+
use CanBulkDestroy;
17+
use HasFilters;
18+
use HasFields;
19+
use CanBeForgotten;
20+
21+
private $resource = 'deals';
22+
}

src/Api/Notes.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?php
2+
3+
namespace CodeGreenCreative\Freshworks\Api;
4+
5+
use CodeGreenCreative\Freshworks\Client;
6+
use CodeGreenCreative\Freshworks\Traits\PerformsCrudOperations;
7+
8+
class Notes extends Client
9+
{
10+
use PerformsCrudOperations;
11+
12+
private $resource = 'notes';
13+
}

src/Api/Phone.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php
2+
3+
namespace CodeGreenCreative\Freshworks\Api;
4+
5+
use Psr\Http\Message\ResponseInterface;
6+
use CodeGreenCreative\Freshworks\Client;
7+
8+
class Phone extends Client
9+
{
10+
private $resource = 'phone_calls';
11+
12+
/**
13+
* [lookup description]
14+
* @param array $query [description]
15+
* @return [type] [description]
16+
*/
17+
public function log(array $parameters = []): ResponseInterface
18+
{
19+
return $this->client->request('GET', '{$this->resource}', ['body' => json_encode($parameters)]);
20+
}
21+
}

src/Api/SalesActivities.php

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
3+
namespace CodeGreenCreative\Freshworks\Api;
4+
5+
use Psr\Http\Message\ResponseInterface;
6+
use CodeGreenCreative\Freshworks\Client;
7+
use CodeGreenCreative\Freshworks\Traits\PerformsCrudOperations;
8+
9+
class SalesActivities extends Client
10+
{
11+
use PerformsCrudOperations;
12+
13+
private $resource = 'sales_activities';
14+
15+
public function all(array $query = []): ResponseInterface
16+
{
17+
return $this->client->request('GET', '{$this->resource}', ['query' => $query]);
18+
}
19+
}

src/Api/Search.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php
2+
3+
namespace CodeGreenCreative\Freshworks\Api;
4+
5+
use Psr\Http\Message\ResponseInterface;
6+
use CodeGreenCreative\Freshworks\Client;
7+
8+
class Search extends Client
9+
{
10+
private $resource = 'lookup';
11+
12+
/**
13+
* [lookup description]
14+
* @param array $query [description]
15+
* @return [type] [description]
16+
*/
17+
public function lookup(array $query = []): ResponseInterface
18+
{
19+
return $this->client->request('GET', '{$this->resource}', ['query' => $query]);
20+
}
21+
}

src/Api/Tasks.php

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
3+
namespace CodeGreenCreative\Freshworks\Api;
4+
5+
use Psr\Http\Message\ResponseInterface;
6+
use CodeGreenCreative\Freshworks\Client;
7+
use CodeGreenCreative\Freshworks\Traits\PerformsCrudOperations;
8+
9+
class Tasks extends Client
10+
{
11+
use PerformsCrudOperations;
12+
13+
private $resource = 'tasks';
14+
15+
public function all(array $query = []): ResponseInterface
16+
{
17+
return $this->client->request('GET', '{$this->resource}', ['query' => $query]);
18+
}
19+
}

src/Traits/CanBeForgotten.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?php
2+
3+
namespace CodeGreenCreative\Freshworks\Traits;
4+
5+
use Psr\Http\Message\ResponseInterface;
6+
7+
trait CanBeForgotten
8+
{
9+
public function forget(int $id): ResponseInterface
10+
{
11+
return $this->client->request('DELETE', '{$this->resource}/{$id}/forget');
12+
}
13+
}

0 commit comments

Comments
 (0)