• Модуль: 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;
}