protected function handleBitrix24APILevelErrors($arRequestResult, $methodName, array $additionalParameters = array())
{
if (array_key_exists('error', $arRequestResult)) {
$errorMsg = sprintf('%s - %s in call [%s] for domain [%s]', $arRequestResult['error'], array_key_exists('error_description', $arRequestResult) ? $arRequestResult['error_description'] : '', $methodName, $this->getDomain());
$this->log->error($errorMsg, $this->getErrorContext());
// throw specific API-level exceptions
switch (strtoupper(trim($arRequestResult['error']))) {
case 'WRONG_CLIENT':
case 'ERROR_OAUTH':
throw new Bitrix24WrongClientException($errorMsg);
case 'ERROR_METHOD_NOT_FOUND':
throw new Bitrix24MethodNotFoundException($errorMsg);
case 'INVALID_TOKEN':
case 'INVALID_GRANT':
throw new Bitrix24TokenIsInvalidException($errorMsg);
case 'EXPIRED_TOKEN':
throw new Bitrix24TokenIsExpiredException($errorMsg);
case 'PAYMENT_REQUIRED':
throw new Bitrix24PaymentRequiredException($errorMsg);
default:
throw new Bitrix24ApiException($errorMsg);
}
}
return null;
}