- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/controller/controller.php
- Класс: BitrixSaleControllerController
- Вызов: Controller::processAfterAction
protected function processAfterAction(EngineAction $action, $result)
{
$externalizer = null;
if($this->errorCollection->count()==0)
{
if($result instanceof EngineResponseDataTypePage || is_array($result))
{
$data = $result instanceof EngineResponseDataTypePage ?
[$result->getId()=>$result->getItems()]:$result;
if($this->isCrmModuleInstalled() && Loader::includeModule('crm'))
{
$externalizer = BitrixCrmOrderRestExternalizer::buildByAction($action, $data, $this->getScope());
}
else
{
$externalizer = BitrixSaleRestExternalizer::buildByAction($action, $data, $this->getScope());
}
}
}
else
{
return parent::processAfterAction($action, $result);
}
if($externalizer instanceof ModificationFieldsBase)
{
if($this->getScope() == EngineController::SCOPE_REST)
{
// nothing
}
else if($this->getScope() == EngineController::SCOPE_AJAX)
{
$externalizer->setFormat([
ModificationFieldsBase::TO_WHITE_LIST,
ModificationFieldsBase::SORTING_KEYS
]);
}
if($this->getScope() == EngineController::SCOPE_REST)
{
return $result instanceof EngineResponseDataTypePage ?
$externalizer->getPage($result):$externalizer;
}
else if($this->getScope() == EngineController::SCOPE_AJAX)
{
return $externalizer->toArray();
}
}
return parent::processAfterAction($action, $result);
}