• Модуль: socialservices
  • Путь к файлу: ~/bitrix/modules/socialservices/classes/general/zoom.php
  • Класс: CZoomInterface
  • Вызов: CZoomInterface::sendRequest
private function sendRequest(string $method, string $endPoint, array $params = []): Result
{
	$result = new Result();

	$http = new HttpClient(array(
		'socketTimeout' => $this->httpTimeout,
		'streamTimeout' => $this->httpTimeout,
	));
	$http->setHeader('Authorization', 'Bearer '.$this->access_token);

	switch ($method)
	{
		case HttpClient::HTTP_PATCH:
			$http->setHeader('Content-type', 'application/json');
			$http->query(HttpClient::HTTP_PATCH, $endPoint, Json::encode($params));
			if ($http->getStatus() != 204)
			{
				// zoom api error
				$requestResult = $http->getResult();
				$response = Json::decode($requestResult);
				return $result->addError(new Error($response['message'], $response['code']));
			}
			return $result;

		case HttpClient::HTTP_POST:
			$http->setHeader('Content-type', 'application/json');
			$requestResult = $http->post($endPoint, Json::encode($params));
			break;

		case HttpClient::HTTP_GET:
			$requestResult = $http->get($endPoint);
			break;

		default:
			return $result->addError(new Error('Unsupported request method'));
	}

	try
	{
		$decodedData = Json::decode($requestResult);
		$result->setData($decodedData);
	}
	catch (ArgumentException $e)
	{
		return $result->addError(new Error('Could not decode service response'));
	}

	return $result;
}