CCrmAddressTypeRestProxy::processMethodRequest

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. CCrmAddressTypeRestProxy
  4. processMethodRequest
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/classes/general/restservice.php
  • Класс: \CCrmAddressTypeRestProxy
  • Вызов: CCrmAddressTypeRestProxy::processMethodRequest
public function processMethodRequest($name, $nameDetails, $arParams, $nav, $server)
{
	$name = mb_strtoupper($name);

	if ($name === 'GETAVAILABLE')
	{
		$result = [];
		$descriptions = EntityAddressType::getDescriptions(EntityAddressType::getAvailableIds());
		foreach($descriptions as $k => $v)
		{
			$result[] = array('ID' => $k, 'NAME' => $v);
		}
		return $result;
	}
	else if ($name === 'GETZONEMAP')
	{
		$result = [];

		foreach (EntityAddressType::getZoneMap() as $zoneId => $zoneInfo)
		{
			$info = ['ID' => $zoneId];
			foreach ($zoneInfo as $paramName => $paramValue)
			{
				$info[mb_strtoupper($paramName)] = $paramValue;
			}
			$result[] = $info;
		}

		return $result;
	}
	else if ($name === 'GETDEFAULTBYZONE')
	{
		$addressZoneId = (string)$this->resolveParam($arParams, 'ID');

		return EntityAddressType::getDefaultIdByZone($addressZoneId);
	}
	else if ($name === 'GETDEFAULTIDBYENTITYCATEGORY')
	{
		$entityTypeId = (int)$this->resolveParam($arParams, 'ENTITY_TYPE_ID');
		$categoryId = (int)$this->resolveParam($arParams, 'CATEGORY_ID');

		return EntityAddressType::getDefaultIdByEntityCategory($entityTypeId, $categoryId);
	}
	else if ($name === 'GETDEFAULTIDBYENTITYID')
	{
		$entityTypeId = (int)$this->resolveParam($arParams, 'ENTITY_TYPE_ID');
		$entityId = (int)$this->resolveParam($arParams, 'ENTITY_ID');

		return EntityAddressType::getDefaultIdByEntityId($entityTypeId, $entityId);
	}
	else if ($name === 'GETBYZONESORVALUES')
	{
		$zoneIds = $this->resolveArrayParam($arParams, 'ID');
		$values = $this->resolveArrayParam($arParams, 'VALUE');

		if (!is_array($zoneIds))
		{
			$zoneIds = [$zoneIds];
		}

		foreach ($zoneIds as $k => $v)
		{
			$zoneIds[$k] = (string)$zoneIds[$k];
		}

		if (!is_array($values))
		{
			$values = [$values];
		}

		foreach ($values as $k => $v)
		{
			$values[$k] = (int)$values[$k];
		}

		$result = [];
		foreach (EntityAddressType::getDescriptionsByZonesOrValues($zoneIds, $values) as $typeId => $description)
		{
			$result[] = ['ID' => $typeId, 'NAME' => $description];
		}
		return $result;
	}

	throw new RestException("Resource '{$name}' is not supported in current context.");
}

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