From f0285e0598829409c0e6965c02f42cbb3adbdaad 2013-06-14 12:41:44 From: vitalyster Date: 2013-06-14 12:41:44 Subject: [PATCH] Twitter backend: fixed error message parsing --- diff --git a/backends/twitter/TwitterResponseParser.cpp b/backends/twitter/TwitterResponseParser.cpp index 65c270ff6c88076204ad84bace146c9bca56dc39..9c927ea94bce6b545eb538c177239352960241db 100644 --- a/backends/twitter/TwitterResponseParser.cpp +++ b/backends/twitter/TwitterResponseParser.cpp @@ -244,7 +244,6 @@ Error getErrorMessage(std::string &json) std::string error = ""; std::string code = "0"; Error resp; - rapidjson::Document rootElement; if(rootElement.Parse<0>(json.c_str()).HasParseError()) { @@ -252,16 +251,15 @@ Error getErrorMessage(std::string &json) LOG4CXX_ERROR(logger, json) return resp; } - - const rapidjson::Value &errorElement = rootElement[TwitterReponseTypes::error.c_str()]; - - if(errorElement.IsArray()) { - error = std::string(errorElement["message"].GetString()); - code = std::to_string(errorElement["code"].GetInt64()); + if (rootElement.IsObject()) { + if (!rootElement["errors"].IsNull()) { + const rapidjson::Value &errorElement = rootElement["errors"][0u]; // first error + error = std::string(errorElement["message"].GetString()); + code = std::to_string(errorElement["code"].GetInt64()); + resp.setCode(code); + resp.setMessage(error); + } } - resp.setCode(code); - resp.setMessage(error); - return resp; }