From 84c73ec03a6825d186725029e277dc35f7919774 Mon Sep 17 00:00:00 2001 From: chelout Date: Tue, 3 Apr 2018 10:48:58 +0300 Subject: [PATCH] Added funnel resource --- src/Actions/ManagesFunnels.php | 42 +++++++++++++++++++++++++++++++++ src/Actions/ManagesStatuses.php | 24 +++++++++---------- src/Ozla.php | 4 +++- src/Resources/Deals/Status.php | 7 ++++++ src/Resources/Funnel.php | 13 ++++++++++ 5 files changed, 77 insertions(+), 13 deletions(-) create mode 100644 src/Actions/ManagesFunnels.php create mode 100644 src/Resources/Funnel.php diff --git a/src/Actions/ManagesFunnels.php b/src/Actions/ManagesFunnels.php new file mode 100644 index 0000000..ba4f6d3 --- /dev/null +++ b/src/Actions/ManagesFunnels.php @@ -0,0 +1,42 @@ +get('funnels'); + + return new ApiResourceCollection($response, Funnel::class); + } + + public function createFunnel(array $data): Funnel + { + $response = $this->post('funnels', $data); + + return new Funnel($response); + } + + public function funnel(int $id): Funnel + { + $response = $this->get("funnels/{$id}"); + + return new Funnel($response); + } + + public function updateFunnel(int $id, array $data): Funnel + { + $response = $this->put("funnels/{$id}", $data); + + return new Funnel($response); + } + + public function deleteFunnel(int $id) + { + $this->delete("funnels/{$id}"); + } +} diff --git a/src/Actions/ManagesStatuses.php b/src/Actions/ManagesStatuses.php index d373f4d..0d19495 100644 --- a/src/Actions/ManagesStatuses.php +++ b/src/Actions/ManagesStatuses.php @@ -7,43 +7,43 @@ trait ManagesStatuses { - public function statuses(): ApiResourceCollection + public function statuses(int $funnelId): ApiResourceCollection { - $response = $this->get('statuses'); + $response = $this->get("funnels/{$funnelId}/statuses"); return new ApiResourceCollection($response, Status::class); } - public function createStatus(array $data): Status + public function createStatus(int $funnelId, array $data): Status { - $response = $this->post('statuses', $data); + $response = $this->post("funnels/{$funnelId}/statuses", $data); return new Status($response); } - public function status(int $id): Status + public function status(int $funnelId, int $statusId): Status { - $response = $this->get("statuses/{$id}"); + $response = $this->get("funnels/{$funnelId}/statuses/{$statusId}"); return new Status($response); } - public function updateStatus(int $id, array $data): Status + public function updateStatus(int $funnelId, int $statusId, array $data): Status { - $response = $this->put("statuses/{$id}", $data); + $response = $this->put("funnels/{$funnelId}/statuses/{$statusId}", $data); return new Status($response); } - public function updateStatusPriority(int $id, array $data): Status + public function updateStatusPriority(int $funnelId, int $statusId, array $data): Status { - $response = $this->patch("statuses/{$id}/priority", $data); + $response = $this->patch("funnels/{$funnelId}/statuses/{$statusId}/priority", $data); return new Status($response); } - public function deleteStatus(int $id) + public function deleteStatus(int $funnelId, int $statusId) { - $this->delete("statuses/{$id}"); + $this->delete("funnels/{$funnelId}/statuses/{$statusId}"); } } diff --git a/src/Ozla.php b/src/Ozla.php index 6d34a36..8e448d5 100755 --- a/src/Ozla.php +++ b/src/Ozla.php @@ -10,6 +10,7 @@ class Ozla Actions\ManagesUsers, Actions\ManagesCompanies, Actions\ManagesContragents, + Actions\ManagesFunnels, Actions\ManagesStatusColors, Actions\ManagesStatusTypes, Actions\ManagesStatuses, @@ -40,7 +41,8 @@ public function __construct(string $domain, string $apiKey, Client $client = nul $this->apiKey = $apiKey; $this->client = $client ?: new Client([ - 'base_uri' => 'https://' . $this->domain . '.ozla.ru/api/v1/', + // 'base_uri' => 'https://' . $this->domain . '.ozla.ru/api/v1/', + 'base_uri' => 'http://' . $this->domain . '.ozla.test/api/v1/', 'http_errors' => false, 'headers' => [ 'Authorization' => 'Bearer ' . $this->apiKey, diff --git a/src/Resources/Deals/Status.php b/src/Resources/Deals/Status.php index a70c6e7..dbeb8be 100644 --- a/src/Resources/Deals/Status.php +++ b/src/Resources/Deals/Status.php @@ -13,6 +13,13 @@ class Status extends ApiResource */ public $name; + /** + * Status funnel id. + * + * @var int + */ + public $funnel_id; + /** * Status type id. * diff --git a/src/Resources/Funnel.php b/src/Resources/Funnel.php new file mode 100644 index 0000000..b2e8f85 --- /dev/null +++ b/src/Resources/Funnel.php @@ -0,0 +1,13 @@ +