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