...Человеческий поиск в разработке...
- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/classes/general/restservice.php
- Класс: \CCrmRestProxyBase
- Вызов: CCrmRestProxyBase::processMethodRequest
public function processMethodRequest($name, $nameDetails, $arParams, $nav, $server) { $ownerTypeID = $this->getOwnerTypeID(); $name = mb_strtoupper($name); if($name === 'FIELDS') { return $this->getFields(); } elseif($name === 'ADD') { $fields = $this->resolveArrayParam($arParams, 'fields'); if(!is_array($fields)) { throw new RestException("Parameter 'fields' must be array."); } $methodParams = $this->resolveArrayParam($arParams, 'params'); if(!is_array($methodParams)) { throw new RestException("Parameter 'params' must be array."); } return $this->add($fields, $methodParams); } elseif($name === 'GET') { return $this->get($this->resolveEntityID($arParams)); } elseif($name === 'LIST') { $order = $this->resolveArrayParam($arParams, 'order'); if(!is_array($order)) { throw new RestException("Parameter 'order' must be array."); } $filter = $this->resolveArrayParam($arParams, 'filter'); if(!is_array($filter)) { throw new RestException("Parameter 'filter' must be array."); } $select = $this->resolveArrayParam($arParams, 'select'); return $this->getList($order, $filter, $select, $nav); } elseif($name === 'UPDATE') { $ID = $this->resolveEntityID($arParams); $fields = $fields = $this->resolveArrayParam($arParams, 'fields'); if(!is_array($fields)) { throw new RestException("Parameter 'fields' must be array."); } $methodParams = $this->resolveArrayParam($arParams, 'params'); if(!is_array($methodParams)) { throw new RestException("Parameter 'params' must be array."); } return $this->update($ID, $fields, $methodParams); } elseif($name === 'DELETE') { $ID = $this->resolveEntityID($arParams); $methodParams = $this->resolveArrayParam($arParams, 'params'); return $this->delete($ID, $methodParams); } elseif($name === 'USERFIELD' && $ownerTypeID !== CCrmOwnerType::Undefined) { $ufProxy = new CCrmUserFieldRestProxy($ownerTypeID); $nameSuffix = mb_strtoupper(!empty($nameDetails)? implode('_', $nameDetails) : ''); if($nameSuffix === 'ADD') { $fields = $this->resolveArrayParam($arParams, 'fields', null); return $ufProxy->add(is_array($fields) ? $fields : $arParams); } elseif($nameSuffix === 'GET') { return $ufProxy->get($this->resolveEntityID($arParams)); } elseif($nameSuffix === 'LIST') { $order = $this->resolveArrayParam($arParams, 'order', array()); if(!is_array($order)) { throw new RestException("Parameter 'order' must be array."); } $filter = $this->resolveArrayParam($arParams, 'filter', array()); if(!is_array($filter)) { throw new RestException("Parameter 'filter' must be array."); } return $ufProxy->getList($order, $filter); } elseif($nameSuffix === 'UPDATE') { $ID = $this->resolveEntityID($arParams); $fields = $fields = $this->resolveArrayParam($arParams, 'fields'); if(!is_array($fields)) { throw new RestException("Parameter 'fields' must be array."); } return $ufProxy->update($ID, $fields); } elseif($nameSuffix === 'DELETE') { return $ufProxy->delete($this->resolveEntityID($arParams)); } } elseif($name === 'DETAILS') { $editorRequestDetails = $nameDetails; $editorRequestName = array_shift($editorRequestDetails); $entityEditorProxy = new CCrmEntityEditorRestProxy($ownerTypeID); return $entityEditorProxy->processMethodRequest($editorRequestName, $editorRequestDetails, $arParams, $nav, $server); } throw new RestException("Resource '{$name}' is not supported in current context."); }