- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/dispatcher.php
- Класс: BitrixTasksDispatcher
- Вызов: Dispatcher::restGateway
static function restGateway($queryArguments)
{
if (static::$currentRestMehtod === null)
{
throw new RestException('Method not found!', 'ERROR_METHOD_NOT_FOUND');
}
// run Dispatcher
$dispatcher = new self();
$plan = new DispatcherToDoPlan();
$plan->import([
[
'OPERATION' => static::$currentRestMehtod,
'ARGUMENTS' => $queryArguments,
],
]);
$result = $dispatcher->run($plan);
// work with result
if ($result->isSuccess())
{
$return = array_values($plan->exportResult());
$errors = $result->getErrors();
if ($errors && !$errors->isEmpty())
{
$error = $errors->first();
throw new RestException($error->getMessage(), $error->getCode());
}
if (isset($return[0]['RESULT']))
{
return $return[0]['RESULT'];
}
throw new RestException('Unknown error', 'UNKNOWN_ERROR');
}
$errors = $result->getErrors();
$error = $errors->first();
throw new RestException($error->getMessage(), 'DISPATCHER_ERROR');
}