CallList::addCallList

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. CallList
  4. addCallList
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/controller/calllist.php
  • Класс: Bitrix\Crm\Controller\CallList
  • Вызов: CallList::addCallList
static function addCallList(array $query, int $nav, \CRestServer $server): int
{
	$query = array_change_key_case($query, CASE_UPPER);

	self::checkRequiredParams(['ENTITY_TYPE', 'ENTITIES'], $query, $server);

	if(!is_array($query['ENTITIES']))
	{
		throw new RestException(
			'Entities is not array',
			self::ENTITIES_ERROR,
			$server::STATUS_WRONG_REQUEST
		);
	}

	$entityTypeId = \CCrmOwnerType::resolveId($query['ENTITY_TYPE']);
	if (!in_array($entityTypeId, [\CCrmOwnerType::Contact, \CCrmOwnerType::Company], true))
	{
		throw new RestException(
			'Incorrect entity type',
			self::ENTITY_TYPE_ERROR,
			$server::STATUS_WRONG_REQUEST
		);
	}

	if (!self::isEntitiesExist($query['ENTITY_TYPE'], $query['ENTITIES'], $server))
	{
		throw new RestException('Incorrect entities id', self::ENTITY_ERROR, $server::STATUS_WRONG_REQUEST);
	}

	$query['ENTITIES'] = self::filterAllowedItems($query['ENTITIES'], $entityTypeId);
	if (empty($query['ENTITIES']))
	{
		throw new RestException(
			'You don\'t have access to these entities',
			self::ACCESS_ERROR,
			$server::STATUS_FORBIDDEN
		);
	}

	$callList = \Bitrix\Crm\CallList\CallList::createWithEntities($query['ENTITY_TYPE'], $query['ENTITIES']);

	if (isset($query['WEBFORM_ID']))
	{
		if (!self::isWebFormExist($query['WEBFORM_ID']))
		{
			throw new RestException('Incorrect webform id', self::WEBFORM_ERROR, $server::STATUS_WRONG_REQUEST);
		}
		$callList->setWebformId($query['WEBFORM_ID']);
	}

	$callList->persist()->createActivity();

	return $callList->getId();
}

Добавить комментарий