diff --git a/README.md b/README.md index af7300d..88f245a 100644 --- a/README.md +++ b/README.md @@ -199,6 +199,7 @@ $leadsService = $apiClient->leads(); | getRequest | Голые запросы | | files | Файлы | | entityFiles | Связь файлов с сущностями | +| websiteButtons | Кнопка на сайт | #### Для большинства сервисов есть базовый набор методов: @@ -520,6 +521,45 @@ $leadsService = $apiClient->leads(); uploadOne(FileUploadModel $model); ``` +#### Методы, доступные в сервисе ```websiteButtons``` +1. getOne - получить 1 сущность: + 1. id (int|string) - id источника + 2. with (array) - массив параметров with, которые поддерживает модель сервиса + 3. Результатом выполнения будет модель сущности ```WebsiteButtonModel``` + ```php + getOne($id, array $with => []); + ``` +2. get - получить несколько сущностей: + 1. filter (BaseEntityFilter) - фильтр для сущности + 2. with (array) - массив параметров with, которые поддерживает модель сервиса + 3. Результатом выполнения будет коллекция ```WebsiteButtonsCollection``` из сущностей ```WebsiteButtonModel``` + ```php + get(BaseEntityFilter $filter = null, array $with = []); + ``` +3. createAsync - добавить источник типа "кнопка на сайт" + 1. model (WebsiteButtonCreateRequestModel) - модель со свойствами: + 1. pipelineId (int) - id воронки + 2. trustedWebsites (array) - список доверенных адресов на которых будет размещена "кнопка на сайт". Например amocrm.ru, https://amocrm.ru + 3. isUsedInApp (true|false) - true, если кнопка встраивается в приложение, а не на сайт + 2. Результатом выполнения будет модель ```WebsiteButtonCreateResponseModel``` + ```php + createAsync(WebsiteButtonCreateRequestModel $model); + ``` +4. updateAsync - добавить дополнительные доверенные адреса + 1. model (WebsiteButtonUpdateRequestModel) - модель со свойствами: + 1. sourceId (int) - id источника + 2. trustedWebsitesToAdd (array) - список доверенных адресов на которых будет размещена "кнопка на сайт" + 2. Результатом выполнения будет модель ```WebsiteButtonModel``` + ```php + updateAsync(WebsiteButtonUpdateRequestModel $model); + ``` +5. addOnlineChatAsync - добавить канал связи "Онлайн-чат" к кнопке на сайт + 1. sourceId - id источника + 2. Результатом выполнения будет void значение + ```php + addOnlineChatAsync(int $sourceId); + ``` + ## Обработка ошибок diff --git a/src/AmoCRM/Client/AmoCRMApiClient.php b/src/AmoCRM/Client/AmoCRMApiClient.php index 9e779f2..33e3056 100644 --- a/src/AmoCRM/Client/AmoCRMApiClient.php +++ b/src/AmoCRM/Client/AmoCRMApiClient.php @@ -2,7 +2,6 @@ namespace AmoCRM\Client; -use AmoCRM\EntitiesServices\Sources\WebsiteButtons; use AmoCRM\EntitiesServices\Currencies; use AmoCRM\EntitiesServices\Account; use AmoCRM\EntitiesServices\Calls; diff --git a/src/AmoCRM/EntitiesServices/Sources/WebsiteButtons.php b/src/AmoCRM/EntitiesServices/Sources/WebsiteButtons.php index 7cf77a9..1bdb341 100644 --- a/src/AmoCRM/EntitiesServices/Sources/WebsiteButtons.php +++ b/src/AmoCRM/EntitiesServices/Sources/WebsiteButtons.php @@ -8,13 +8,16 @@ use AmoCRM\Models\Sources\WebsiteButtonModel; use AmoCRM\Client\AmoCRMApiClient; use AmoCRM\Client\AmoCRMApiRequest; +use AmoCRM\Collections\BaseApiCollection; use AmoCRM\EntitiesServices\BaseEntity; use AmoCRM\EntitiesServices\Traits\PageMethodsTrait; use AmoCRM\Exceptions\AmoCRMApiException; use AmoCRM\Exceptions\AmoCRMApiNoContentException; use AmoCRM\Exceptions\AmoCRMoAuthApiException; +use AmoCRM\Exceptions\NotAvailableForActionException; use AmoCRM\Filters\BaseEntityFilter; use AmoCRM\Helpers\EntityTypesInterface; +use AmoCRM\Models\BaseApiModel; use AmoCRM\Models\Sources\WebsiteButtonCreateRequestModel; use AmoCRM\Models\Sources\WebsiteButtonCreateResponseModel; use AmoCRM\Models\Sources\WebsiteButtonUpdateRequestModel; @@ -86,4 +89,60 @@ public function updateAsync(WebsiteButtonUpdateRequestModel $model): WebsiteButt return WebsiteButtonModel::fromArray($response); } + + /** + * @param BaseApiModel $model + * + * @return BaseApiModel + * @throws NotAvailableForActionException + */ + public function addOne(BaseApiModel $model): BaseApiModel + { + throw new NotAvailableForActionException('Method not available for this entity'); + } + + /** + * @param BaseApiCollection $collection + * + * @return BaseApiCollection + * @throws NotAvailableForActionException + */ + public function add(BaseApiCollection $collection): BaseApiCollection + { + throw new NotAvailableForActionException('Method not available for this entity'); + } + + /** + * @param BaseApiCollection $collection + * + * @return BaseApiCollection + * @throws NotAvailableForActionException + */ + public function update(BaseApiCollection $collection): BaseApiCollection + { + throw new NotAvailableForActionException('Method not available for this entity'); + } + + /** + * @param BaseApiModel $apiModel + * + * @return BaseApiModel + * @throws NotAvailableForActionException + */ + public function updateOne(BaseApiModel $apiModel): BaseApiModel + { + throw new NotAvailableForActionException('Method not available for this entity'); + } + + /** + * @param BaseApiModel $apiModel + * @param array $with + * + * @return BaseApiModel + * @throws NotAvailableForActionException + */ + public function syncOne(BaseApiModel $apiModel, $with = []): BaseApiModel + { + throw new NotAvailableForActionException('Method not available for this entity'); + } }