More stuff
This commit is contained in:
@@ -46,6 +46,42 @@ std::string CSiaCurl::ConstructPath(const String& relativePath) const
|
||||
return ret;
|
||||
}
|
||||
|
||||
SiaCurlError CSiaCurl::CheckHttpError(const std::string& result)
|
||||
{
|
||||
if (result.length() && ((result.length() < 2) || (result[0] != '{')))
|
||||
{
|
||||
return SiaCurlError::HttpError;
|
||||
}
|
||||
|
||||
return SiaCurlError::Success;
|
||||
}
|
||||
|
||||
SiaCurlError CSiaCurl::ProcessResponse(const int& res, const std::string& result, json& response) const
|
||||
{
|
||||
SiaCurlError ret;
|
||||
if (res == CURLE_OK)
|
||||
{
|
||||
ret = CheckHttpError(result);
|
||||
if (API_SUCCESS(SiaCurlError, ret))
|
||||
{
|
||||
ret = (result.length() ? CheckApiError((response = json::parse(result.c_str()))) : SiaCurlError::Success);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((res == CURLE_COULDNT_RESOLVE_HOST) || (res == CURLE_COULDNT_CONNECT))
|
||||
{
|
||||
ret = SiaCurlError::NoResponse;
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = SiaCurlError::UnknownFailure;
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
SiaCurlError CSiaCurl::_Get(const String& path, json& response) const
|
||||
{
|
||||
curl_easy_reset(_curlHandle);
|
||||
@@ -62,24 +98,7 @@ SiaCurlError CSiaCurl::_Get(const String& path, json& response) const
|
||||
curl_easy_setopt(_curlHandle, CURLOPT_WRITEDATA, &result);
|
||||
const CURLcode res = curl_easy_perform(_curlHandle);
|
||||
|
||||
SiaCurlError ret;
|
||||
if (res == CURLE_OK)
|
||||
{
|
||||
ret = (result.length() ? CheckApiError((response = json::parse(result.c_str()))) : SiaCurlError::Success);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((res == CURLE_COULDNT_RESOLVE_HOST) || (res == CURLE_COULDNT_CONNECT))
|
||||
{
|
||||
ret = SiaCurlError::NoResponse;
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = SiaCurlError::UnknownFailure;
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
return ProcessResponse(res, result, response);
|
||||
}
|
||||
|
||||
bool CSiaCurl::CheckVersion(SiaCurlError& error) const
|
||||
@@ -151,21 +170,7 @@ SiaCurlError CSiaCurl::Post(const String& path, const PostParameters& parameters
|
||||
curl_easy_setopt(_curlHandle, CURLOPT_WRITEDATA, &result);
|
||||
const CURLcode res = curl_easy_perform(_curlHandle);
|
||||
|
||||
if (res == CURLE_OK)
|
||||
{
|
||||
ret = (result.length() ? CheckApiError((response = json::parse(result.c_str()))) : SiaCurlError::Success);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((res == CURLE_COULDNT_RESOLVE_HOST) || (res == CURLE_COULDNT_CONNECT))
|
||||
{
|
||||
ret = SiaCurlError::NoResponse;
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = SiaCurlError::UnknownFailure;
|
||||
}
|
||||
}
|
||||
ret = ProcessResponse(res, result, response);
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
Reference in New Issue
Block a user