- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/lib/service/microservice/basesender.php
- Класс: BitrixMainServiceMicroServiceBaseSender
- Вызов: BaseSender::createAnswerForJsonResponse
protected function createAnswerForJsonResponse($queryResult, $response, $errors, $status): Result
{
$result = new Result();
if(!$queryResult)
{
foreach ($errors as $code => $message)
{
$result->addError(new Error($message, $code));
}
return $result;
}
if($status != 200)
{
$result->addError(new Error("Server returned " . $status . " code", "WRONG_SERVER_RESPONSE"));
return $result;
}
if($response == "")
{
$result->addError(new Error("Empty server response", "EMPTY_SERVER_RESPONSE"));
return $result;
}
try
{
$parsedResponse = Json::decode($response);
}
catch (Exception $e)
{
$result->addError(new Error("Could not parse server response. Raw response: " . $response));
return $result;
}
if($parsedResponse["status"] === "error")
{
foreach ($parsedResponse["errors"] as $error)
{
$result->addError(new Error($error["message"], $error["code"], $error["customData"]));
}
}
else if(is_array($parsedResponse["data"]))
{
$result->setData($parsedResponse["data"]);
}
return $result;
}