Исправление в обработке Компаний неполное
Opened this issue · 5 comments
Помимо уже внесенных изменений, также необходимо в файле Company.php добавить следующие изменения:
public $name;
public $responsible_user_id;
public $tags;
**public $type;**
public $linked_leads_id;
public $custom_fields;
private $tags_array;
public function __construct()
{
$this->key_name = 'contacts';
**$this->type = 'contact';**
$this->url_name = 'company';
$this->linked_leads_id = [];
$this->custom_fields = [];
$this->tags_array = [];
}
Так как см. документацию: https://developers.amocrm.ru/rest_api/company_set.php
и см. скриншот: https://yadi.sk/i/VVPDpLWCqGRjg
Такой параметр почему-то требуется только при создании компаний, при создании остальных сущностей type нигде не встречается.
Также это ставит под сомнение необходимость использования данного свойства класса "public $type;" - единственное, где он встречается далее в коде класса это место:
private function createPostRequest()
{
if (!is_array($this->params)) {
$this->params = [$this->params];
}
$key_name = $this->params[0]->key_name;
$url_name = $this->params[0]->url_name;
$id = $this->params[0]->id;
$action = (isset($id)) ? 'update' : 'add';
$params = [];
$params['request'][$key_name][$action] = $this->params;
$this->post = true;
**$this->type = $key_name;**
$this->action = $action;
$this->url = 'v2/json/'.$url_name.'/set';
$this->params = $params;
}
И далее в классе Handler оно не используется, насколько я могу судить.
Так как см. документацию: https://developers.amocrm.ru/rest_api/company_set.php
и см. скриншот: https://yadi.sk/i/VVPDpLWCqGRjgТакой параметр почему-то требуется только при создании компаний, при создании остальных сущностей type нигде не встречается.
Скорее всего опечатка. Этот параметр "type", есть только в примере, но не описан в таблице Parameters. К тому же компании отлично создаются и без него. Я проверял.
Также это ставит под сомнение необходимость использования данного свойства класса "public $type;" - единственное, где он встречается далее в коде класса это место:
Это свойство не Entity, а Request, и используется в Handler для получения ID последней добавленной записи (строка 115 в Handler.php)
Хм, оставлял тут сообщение, но видимо не отправилось. В общем:
Это свойство не Entity, а Request, и используется в Handler для получения ID последней добавленной записи (строка 115 в Handler.php)
Понятно.
Скорее всего опечатка. Этот параметр "type", есть только в примере, но не описан в таблице Parameters. К тому же компании отлично создаются и без него. Я проверял.
Есть тонкость. Компания также создается, когда ее просто указываешь с помощью public function setCompanyName($value) из Contact.php. Возможно, ошибка была в этом. По крайней мере, у меня компания начала создаваться и заполняться кастомными полями, что важно, только после исправлений, которые я указал выше.
Еще не проверяли мое предположение? Не хочется форкать только ради этого исправления.
Станислав, как и тут - #12
Хорошо, там уже сделал, тут сейчас тоже сделаю. Я в следующие разы тогда напрямую буду делать пул реквесты, если только не спорное что-то, так как что-то еще вроде было бы.