Skip to content

Commit

Permalink
1. Fix readme new service website buttons
Browse files Browse the repository at this point in the history
2. Add unsupported method to website buttons service
  • Loading branch information
egrigorev committed Jan 28, 2024
1 parent 945372f commit fdc6200
Show file tree
Hide file tree
Showing 3 changed files with 99 additions and 1 deletion.
40 changes: 40 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,7 @@ $leadsService = $apiClient->leads();
| getRequest | Голые запросы |
| files | Файлы |
| entityFiles | Связь файлов с сущностями |
| websiteButtons | Кнопка на сайт |

#### Для большинства сервисов есть базовый набор методов:

Expand Down Expand Up @@ -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);
```


## Обработка ошибок

Expand Down
1 change: 0 additions & 1 deletion src/AmoCRM/Client/AmoCRMApiClient.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

namespace AmoCRM\Client;

use AmoCRM\EntitiesServices\Sources\WebsiteButtons;
use AmoCRM\EntitiesServices\Currencies;
use AmoCRM\EntitiesServices\Account;
use AmoCRM\EntitiesServices\Calls;
Expand Down
59 changes: 59 additions & 0 deletions src/AmoCRM/EntitiesServices/Sources/WebsiteButtons.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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');
}
}

0 comments on commit fdc6200

Please sign in to comment.