1
0

More stuff

This commit is contained in:
Scott E. Graves
2017-02-04 20:04:06 -06:00
parent 5ffe77e6cd
commit 3139588098
11 changed files with 86 additions and 55 deletions

View File

@@ -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;