From f741be0a79d88e2db02f14eeabc5ba8465066739 Mon Sep 17 00:00:00 2001 From: Allen Zhang Date: Wed, 22 Apr 2020 12:46:47 +0800 Subject: [PATCH] Move http query parser Signed-off-by: Allen Zhang --- .../web_impl/handler/WebRequestHandler.cpp | 52 ------------------- core/src/server/web_impl/utils/Util.h | 52 +++++++++++++++++++ 2 files changed, 52 insertions(+), 52 deletions(-) diff --git a/core/src/server/web_impl/handler/WebRequestHandler.cpp b/core/src/server/web_impl/handler/WebRequestHandler.cpp index 27c81b557e..b76d1be639 100644 --- a/core/src/server/web_impl/handler/WebRequestHandler.cpp +++ b/core/src/server/web_impl/handler/WebRequestHandler.cpp @@ -77,58 +77,6 @@ WebErrorMap(ErrorCode code) { } /////////////////////////////////// Private methods /////////////////////////////////////// -Status -WebRequestHandler::ParseQueryInteger(const OQueryParams& query_params, const std::string& key, int64_t& value, - bool nullable) { - auto query = query_params.get(key.c_str()); - if (nullptr != query.get() && query->getSize() > 0) { - std::string value_str = query->std_str(); - if (!ValidationUtil::ValidateStringIsNumber(value_str).ok()) { - return Status(ILLEGAL_QUERY_PARAM, - "Query param \'offset\' is illegal, only non-negative integer supported"); - } - - value = std::stol(value_str); - } else if (!nullable) { - return Status(QUERY_PARAM_LOSS, "Query param \"" + key + "\" is required"); - } - - return Status::OK(); -} - -Status -WebRequestHandler::ParseQueryStr(const OQueryParams& query_params, const std::string& key, std::string& value, - bool nullable) { - auto query = query_params.get(key.c_str()); - if (nullptr != query.get() && query->getSize() > 0) { - value = query->std_str(); - } else if (!nullable) { - return Status(QUERY_PARAM_LOSS, "Query param \"" + key + "\" is required"); - } - - return Status::OK(); -} - -Status -WebRequestHandler::ParseQueryBool(const OQueryParams& query_params, const std::string& key, bool& value, - bool nullable) { - auto query = query_params.get(key.c_str()); - if (nullptr != query.get() && query->getSize() > 0) { - std::string value_str = query->std_str(); - if (!ValidationUtil::ValidateStringIsBool(value_str).ok()) { - return Status(ILLEGAL_QUERY_PARAM, "Query param \'all_required\' must be a bool"); - } - value = value_str == "True" || value_str == "true"; - return Status::OK(); - } - - if (!nullable) { - return Status(QUERY_PARAM_LOSS, "Query param \"" + key + "\" is required"); - } - - return Status::OK(); -} - void WebRequestHandler::AddStatusToJson(nlohmann::json& json, int64_t code, const std::string& msg) { json["code"] = (int64_t)code; diff --git a/core/src/server/web_impl/utils/Util.h b/core/src/server/web_impl/utils/Util.h index fe3721e6e8..de4d6e9df5 100644 --- a/core/src/server/web_impl/utils/Util.h +++ b/core/src/server/web_impl/utils/Util.h @@ -28,6 +28,58 @@ CopyRowRecords(const OList::ObjectWrapper>::ObjectWrapper& recor Status CopyBinRowRecords(const OList::ObjectWrapper>::ObjectWrapper& records, std::vector& vectors); +Status +WebRequestHandler::ParseQueryInteger(const OQueryParams& query_params, const std::string& key, int64_t& value, + bool nullable) { + auto query = query_params.get(key.c_str()); + if (nullptr != query.get() && query->getSize() > 0) { + std::string value_str = query->std_str(); + if (!ValidationUtil::ValidateStringIsNumber(value_str).ok()) { + return Status(ILLEGAL_QUERY_PARAM, + "Query param \'offset\' is illegal, only non-negative integer supported"); + } + + value = std::stol(value_str); + } else if (!nullable) { + return Status(QUERY_PARAM_LOSS, "Query param \"" + key + "\" is required"); + } + + return Status::OK(); +} + +Status +WebRequestHandler::ParseQueryStr(const OQueryParams& query_params, const std::string& key, std::string& value, + bool nullable) { + auto query = query_params.get(key.c_str()); + if (nullptr != query.get() && query->getSize() > 0) { + value = query->std_str(); + } else if (!nullable) { + return Status(QUERY_PARAM_LOSS, "Query param \"" + key + "\" is required"); + } + + return Status::OK(); +} + +Status +WebRequestHandler::ParseQueryBool(const OQueryParams& query_params, const std::string& key, bool& value, + bool nullable) { + auto query = query_params.get(key.c_str()); + if (nullptr != query.get() && query->getSize() > 0) { + std::string value_str = query->std_str(); + if (!ValidationUtil::ValidateStringIsBool(value_str).ok()) { + return Status(ILLEGAL_QUERY_PARAM, "Query param \'all_required\' must be a bool"); + } + value = value_str == "True" || value_str == "true"; + return Status::OK(); + } + + if (!nullable) { + return Status(QUERY_PARAM_LOSS, "Query param \"" + key + "\" is required"); + } + + return Status::OK(); +} + } // namespace web } // namespace server } // namespace milvus