/**
* @return array
* @throws Exception
*/
public function update()
{
// Проверяем на существование
$attr = (new Attributes())->getOneBy([
'id' => array_get($this->request, 'id'),
'company_id' => App()->Company->id,
'entity' => Attributes::ENTITY_CONTACTS,
]);
if (!$attr->id) {
return $this->jsonError('Кастомное поле не найдено');
}
// Проверяем заполненость обязательных полей
if (!$this->checkRequiredFields($this->request)) {
return $this->jsonError('Пожалуйста заполните все обязательные поля');
}
$attr->DBassignRecord(array_merge(
array_only($this->request, $attr->getAllFields()),
['company_id' => App()->Company->id, 'entity' => Attributes::ENTITY_CONTACTS]
), false, false, true);
$attr->DBupdate();
return $this->jsonSuccess([
'item' => $attr->toArray(true),
'message' => 'Изменения успешно сохранены'
]);
}