From a6aae6c63175f7bb90d5a88f205d90ba6c74e485 Mon Sep 17 00:00:00 2001 From: Arsentiy Milchakov Date: Thu, 29 Sep 2016 12:59:56 +0300 Subject: review fixes --- editor/config_loader.cpp | 4 +- editor/osm_auth.cpp | 132 +++++++++++++++++++++-------------------------- editor/user_stats.cpp | 10 ++-- 3 files changed, 66 insertions(+), 80 deletions(-) (limited to 'editor') diff --git a/editor/config_loader.cpp b/editor/config_loader.cpp index 6bd94f3e58..b5ef7241a4 100644 --- a/editor/config_loader.cpp +++ b/editor/config_loader.cpp @@ -39,9 +39,9 @@ string RunSimpleHttpRequest(string const & url) LOG(LWARNING, ("Exception from HttpClient::RunHttpRequest, message: ", ex.what())); } - if (result && !request.was_redirected() && request.error_code() == 200) // 200 - http status OK + if (result && !request.WasRedirected() && request.ErrorCode() == 200) // 200 - http status OK { - return request.server_response(); + return request.ServerResponse(); } return {}; diff --git a/editor/osm_auth.cpp b/editor/osm_auth.cpp index b85ee31929..b6a27d10b0 100644 --- a/editor/osm_auth.cpp +++ b/editor/osm_auth.cpp @@ -53,18 +53,6 @@ string BuildPostRequest(map const & params) } return result; } - -// TODO(AlexZ): DebugPrint doesn't detect this overload. Fix it. -string DP(HttpClient const & request) -{ - string str = "HTTP " + strings::to_string(request.error_code()) + " url [" + request.url_requested() + "]"; - if (request.was_redirected()) - str += " was redirected to [" + request.url_received() + "]"; - if (!request.server_response().empty()) - str += " response: " + request.server_response(); - return str; -} - } // namespace // static @@ -136,25 +124,25 @@ OsmOAuth::SessionID OsmOAuth::FetchSessionId(string const & subUrl) const HttpClient request(url); if (!request.RunHttpRequest()) MYTHROW(NetworkError, ("FetchSessionId Network error while connecting to", url)); - if (request.was_redirected()) - MYTHROW(UnexpectedRedirect, ("Redirected to", request.url_received(), "from", url)); - if (request.error_code() != HTTP::OK) - MYTHROW(FetchSessionIdError, (DP(request))); + if (request.WasRedirected()) + MYTHROW(UnexpectedRedirect, ("Redirected to", request.UrlReceived(), "from", url)); + if (request.ErrorCode() != HTTP::OK) + MYTHROW(FetchSessionIdError, (DebugPrint(request))); - SessionID const sid = { request.combined_cookies(), FindAuthenticityToken(request.server_response()) }; + SessionID const sid = { request.CombinedCookies(), FindAuthenticityToken(request.ServerResponse()) }; if (sid.m_cookies.empty() || sid.m_token.empty()) - MYTHROW(FetchSessionIdError, ("Cookies and/or token are empty for request", DP(request))); + MYTHROW(FetchSessionIdError, ("Cookies and/or token are empty for request", DebugPrint(request))); return sid; } void OsmOAuth::LogoutUser(SessionID const & sid) const { HttpClient request(m_baseUrl + "/logout"); - request.set_cookies(sid.m_cookies); + request.SetCookies(sid.m_cookies); if (!request.RunHttpRequest()) - MYTHROW(NetworkError, ("LogoutUser Network error while connecting to", request.url_requested())); - if (request.error_code() != HTTP::OK) - MYTHROW(LogoutUserError, (DP(request))); + MYTHROW(NetworkError, ("LogoutUser Network error while connecting to", request.UrlRequested())); + if (request.ErrorCode() != HTTP::OK) + MYTHROW(LogoutUserError, (DebugPrint(request))); } bool OsmOAuth::LoginUserPassword(string const & login, string const & password, SessionID const & sid) const @@ -168,50 +156,50 @@ bool OsmOAuth::LoginUserPassword(string const & login, string const & password, {"authenticity_token", sid.m_token} }; HttpClient request(m_baseUrl + "/login"); - request.set_body_data(BuildPostRequest(params), "application/x-www-form-urlencoded") - .set_cookies(sid.m_cookies) - .set_handle_redirects(false); + request.SetBodyData(BuildPostRequest(params), "application/x-www-form-urlencoded") + .SetCookies(sid.m_cookies) + .SetHandleRedirects(false); if (!request.RunHttpRequest()) - MYTHROW(NetworkError, ("LoginUserPassword Network error while connecting to", request.url_requested())); + MYTHROW(NetworkError, ("LoginUserPassword Network error while connecting to", request.UrlRequested())); // At the moment, automatic redirects handling is buggy on Androids < 4.4. // set_handle_redirects(false) works only for Android code, iOS one (and curl) still automatically follow all redirects. - if (request.error_code() != HTTP::OK && request.error_code() != HTTP::Found) - MYTHROW(LoginUserPasswordServerError, (DP(request))); + if (request.ErrorCode() != HTTP::OK && request.ErrorCode() != HTTP::Found) + MYTHROW(LoginUserPasswordServerError, (DebugPrint(request))); // Not redirected page is a 100% signal that login and/or password are invalid. - if (!request.was_redirected()) + if (!request.WasRedirected()) return false; // Check if we were redirected to some 3rd party site. - if (request.url_received().find(m_baseUrl) != 0) - MYTHROW(UnexpectedRedirect, (DP(request))); + if (request.UrlReceived().find(m_baseUrl) != 0) + MYTHROW(UnexpectedRedirect, (DebugPrint(request))); // m_baseUrl + "/login" means login and/or password are invalid. - return request.server_response().find("/login") == string::npos; + return request.ServerResponse().find("/login") == string::npos; } bool OsmOAuth::LoginSocial(string const & callbackPart, string const & socialToken, SessionID const & sid) const { string const url = m_baseUrl + callbackPart + socialToken; HttpClient request(url); - request.set_cookies(sid.m_cookies) - .set_handle_redirects(false); + request.SetCookies(sid.m_cookies) + .SetHandleRedirects(false); if (!request.RunHttpRequest()) - MYTHROW(NetworkError, ("LoginSocial Network error while connecting to", request.url_requested())); - if (request.error_code() != HTTP::OK && request.error_code() != HTTP::Found) - MYTHROW(LoginSocialServerError, (DP(request))); + MYTHROW(NetworkError, ("LoginSocial Network error while connecting to", request.UrlRequested())); + if (request.ErrorCode() != HTTP::OK && request.ErrorCode() != HTTP::Found) + MYTHROW(LoginSocialServerError, (DebugPrint(request))); // Not redirected page is a 100% signal that social login has failed. - if (!request.was_redirected()) + if (!request.WasRedirected()) return false; // Check if we were redirected to some 3rd party site. - if (request.url_received().find(m_baseUrl) != 0) - MYTHROW(UnexpectedRedirect, (DP(request))); + if (request.UrlReceived().find(m_baseUrl) != 0) + MYTHROW(UnexpectedRedirect, (DebugPrint(request))); // m_baseUrl + "/login" means login and/or password are invalid. - return request.server_response().find("/login") == string::npos; + return request.ServerResponse().find("/login") == string::npos; } // Fakes a buttons press to automatically accept requested permissions. @@ -229,17 +217,17 @@ string OsmOAuth::SendAuthRequest(string const & requestTokenKey, SessionID const {"commit", "Save changes"} }; HttpClient request(m_baseUrl + "/oauth/authorize"); - request.set_body_data(BuildPostRequest(params), "application/x-www-form-urlencoded") - .set_cookies(sid.m_cookies) - .set_handle_redirects(false); + request.SetBodyData(BuildPostRequest(params), "application/x-www-form-urlencoded") + .SetCookies(sid.m_cookies) + .SetHandleRedirects(false); if (!request.RunHttpRequest()) - MYTHROW(NetworkError, ("SendAuthRequest Network error while connecting to", request.url_requested())); + MYTHROW(NetworkError, ("SendAuthRequest Network error while connecting to", request.UrlRequested())); - string const callbackURL = request.url_received(); + string const callbackURL = request.UrlReceived(); string const vKey = "oauth_verifier="; auto const pos = callbackURL.find(vKey); if (pos == string::npos) - MYTHROW(SendAuthRequestError, ("oauth_verifier is not found", DP(request))); + MYTHROW(SendAuthRequestError, ("oauth_verifier is not found", DebugPrint(request))); auto const end = callbackURL.find("&", pos); return callbackURL.substr(pos + vKey.length(), end == string::npos ? end : end - pos - vKey.length()); @@ -253,14 +241,14 @@ TRequestToken OsmOAuth::FetchRequestToken() const string const requestTokenQuery = oauth.getURLQueryString(OAuth::Http::Get, requestTokenUrl + "?oauth_callback=oob"); HttpClient request(requestTokenUrl + "?" + requestTokenQuery); if (!request.RunHttpRequest()) - MYTHROW(NetworkError, ("FetchRequestToken Network error while connecting to", request.url_requested())); - if (request.error_code() != HTTP::OK) - MYTHROW(FetchRequestTokenServerError, (DP(request))); - if (request.was_redirected()) - MYTHROW(UnexpectedRedirect, ("Redirected to", request.url_received(), "from", request.url_requested())); + MYTHROW(NetworkError, ("FetchRequestToken Network error while connecting to", request.UrlRequested())); + if (request.ErrorCode() != HTTP::OK) + MYTHROW(FetchRequestTokenServerError, (DebugPrint(request))); + if (request.WasRedirected()) + MYTHROW(UnexpectedRedirect, ("Redirected to", request.UrlReceived(), "from", request.UrlRequested())); // Throws std::runtime_error. - OAuth::Token const reqToken = OAuth::Token::extract(request.server_response()); + OAuth::Token const reqToken = OAuth::Token::extract(request.ServerResponse()); return { reqToken.key(), reqToken.secret() }; } @@ -273,13 +261,13 @@ TKeySecret OsmOAuth::FinishAuthorization(TRequestToken const & requestToken, str string const queryString = oauth.getURLQueryString(OAuth::Http::Get, accessTokenUrl, "", true); HttpClient request(accessTokenUrl + "?" + queryString); if (!request.RunHttpRequest()) - MYTHROW(NetworkError, ("FinishAuthorization Network error while connecting to", request.url_requested())); - if (request.error_code() != HTTP::OK) - MYTHROW(FinishAuthorizationServerError, (DP(request))); - if (request.was_redirected()) - MYTHROW(UnexpectedRedirect, ("Redirected to", request.url_received(), "from", request.url_requested())); + MYTHROW(NetworkError, ("FinishAuthorization Network error while connecting to", request.UrlRequested())); + if (request.ErrorCode() != HTTP::OK) + MYTHROW(FinishAuthorizationServerError, (DebugPrint(request))); + if (request.WasRedirected()) + MYTHROW(UnexpectedRedirect, ("Redirected to", request.UrlReceived(), "from", request.UrlRequested())); - OAuth::KeyValuePairs const responseData = OAuth::ParseKeyValuePairs(request.server_response()); + OAuth::KeyValuePairs const responseData = OAuth::ParseKeyValuePairs(request.ServerResponse()); // Throws std::runtime_error. OAuth::Token const accessToken = OAuth::Token::extract(responseData); return { accessToken.key(), accessToken.secret() }; @@ -352,15 +340,15 @@ bool OsmOAuth::ResetPassword(string const & email) const {"commit", "Reset password"} }; HttpClient request(m_baseUrl + kForgotPasswordUrlPart); - request.set_body_data(BuildPostRequest(params), "application/x-www-form-urlencoded"); - request.set_cookies(sid.m_cookies); + request.SetBodyData(BuildPostRequest(params), "application/x-www-form-urlencoded"); + request.SetCookies(sid.m_cookies); if (!request.RunHttpRequest()) - MYTHROW(NetworkError, ("ResetPassword Network error while connecting to", request.url_requested())); - if (request.error_code() != HTTP::OK) - MYTHROW(ResetPasswordServerError, (DP(request))); + MYTHROW(NetworkError, ("ResetPassword Network error while connecting to", request.UrlRequested())); + if (request.ErrorCode() != HTTP::OK) + MYTHROW(ResetPasswordServerError, (DebugPrint(request))); - if (request.was_redirected() && request.url_received().find(m_baseUrl) != string::npos) + if (request.WasRedirected() && request.UrlReceived().find(m_baseUrl) != string::npos) return true; return false; } @@ -394,13 +382,13 @@ OsmOAuth::Response OsmOAuth::Request(string const & method, string const & httpM HttpClient request(url + "?" + query); if (httpMethod != "GET") - request.set_body_data(body, "application/xml", httpMethod); + request.SetBodyData(body, "application/xml", httpMethod); if (!request.RunHttpRequest()) MYTHROW(NetworkError, ("Request Network error while connecting to", url)); - if (request.was_redirected()) - MYTHROW(UnexpectedRedirect, ("Redirected to", request.url_received(), "from", url)); + if (request.WasRedirected()) + MYTHROW(UnexpectedRedirect, ("Redirected to", request.UrlReceived(), "from", url)); - return Response(request.error_code(), request.server_response()); + return Response(request.ErrorCode(), request.ServerResponse()); } OsmOAuth::Response OsmOAuth::DirectRequest(string const & method, bool api) const @@ -409,10 +397,10 @@ OsmOAuth::Response OsmOAuth::DirectRequest(string const & method, bool api) cons HttpClient request(url); if (!request.RunHttpRequest()) MYTHROW(NetworkError, ("DirectRequest Network error while connecting to", url)); - if (request.was_redirected()) - MYTHROW(UnexpectedRedirect, ("Redirected to", request.url_received(), "from", url)); + if (request.WasRedirected()) + MYTHROW(UnexpectedRedirect, ("Redirected to", request.UrlReceived(), "from", url)); - return Response(request.error_code(), request.server_response()); + return Response(request.ErrorCode(), request.ServerResponse()); } string DebugPrint(OsmOAuth::Response const & code) diff --git a/editor/user_stats.cpp b/editor/user_stats.cpp index 059a3b35df..3a71ea9884 100644 --- a/editor/user_stats.cpp +++ b/editor/user_stats.cpp @@ -12,8 +12,6 @@ #include "3party/pugixml/src/pugixml.hpp" -using TRequest = platform::HttpClient; - namespace { string const kUserStatsUrl = "https://editor-api.maps.me/user?format=xml"; @@ -91,7 +89,7 @@ bool UserStatsLoader::Update(string const & userName) } auto const url = kUserStatsUrl + "&name=" + UrlEncode(userName); - TRequest request(url); + platform::HttpClient request(url); if (!request.RunHttpRequest()) { @@ -99,13 +97,13 @@ bool UserStatsLoader::Update(string const & userName) return false; } - if (request.error_code() != 200) + if (request.ErrorCode() != 200) { - LOG(LWARNING, ("Server returned", request.error_code(), "for url", url)); + LOG(LWARNING, ("Server returned", request.ErrorCode(), "for url", url)); return false; } - auto const response = request.server_response(); + auto const response = request.ServerResponse(); pugi::xml_document document; if (!document.load_buffer(response.data(), response.size())) -- cgit v1.2.3