From b60e3ffb262a896fd599fe6a3804b2ef7f541c57 Mon Sep 17 00:00:00 2001 From: Veloman Yunkan Date: Mon, 26 Apr 2021 02:25:37 +0400 Subject: [PATCH] RequestContext::get_optional_param() --- src/server/internalServer.cpp | 10 ++-------- src/server/request_context.h | 9 +++++++++ 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/server/internalServer.cpp b/src/server/internalServer.cpp index c0148c241..3634ef79a 100644 --- a/src/server/internalServer.cpp +++ b/src/server/internalServer.cpp @@ -703,14 +703,8 @@ InternalServer::search_catalog(const RequestContext& request, opdsDumper.setTitle("Search result for " + q); std::vector bookIdsToDump = mp_library->filter(filter); const auto totalResults = bookIdsToDump.size(); - size_t count(10); - size_t startIndex(0); - try { - count = extractFromString(request.get_argument("count")); - } catch (...) {} - try { - startIndex = extractFromString(request.get_argument("start")); - } catch (...) {} + const size_t count = request.get_optional_param("count", 10UL); + const size_t startIndex = request.get_optional_param("start", 0UL); const auto s = std::min(startIndex, totalResults); bookIdsToDump.erase(bookIdsToDump.begin(), bookIdsToDump.begin()+s); if (count>0 && bookIdsToDump.size() > count) { diff --git a/src/server/request_context.h b/src/server/request_context.h index 7cb8f3da5..3dd446af2 100644 --- a/src/server/request_context.h +++ b/src/server/request_context.h @@ -74,6 +74,15 @@ class RequestContext { return v; } + template + T get_optional_param(const std::string& name, T default_value) const + { + try { + return get_argument(name); + } catch (...) {} + return default_value; + } + RequestMethod get_method() const; std::string get_url() const;