diff --git a/src/server/internalServer.cpp b/src/server/internalServer.cpp index 8548d4245..be1546abe 100644 --- a/src/server/internalServer.cpp +++ b/src/server/internalServer.cpp @@ -245,7 +245,7 @@ std::pair InternalServer::selectBooks(const Req auto bookName = request.get_argument("content"); try { const auto bookIds = Library::BookIdSet{mp_nameMapper->getIdForName(bookName)}; - const auto queryString = request.get_query([&](const std::string& key){return key == "content";}, true); + const auto queryString = request.get_query([&](const std::string& key){return key == "content";}); return {queryString, bookIds}; } catch (const std::out_of_range&) { throw Error(noSuchBookErrorMsg(bookName)); @@ -270,7 +270,7 @@ std::pair InternalServer::selectBooks(const Req } } const auto bookIds = Library::BookIdSet(id_vec.begin(), id_vec.end()); - const auto queryString = request.get_query([&](const std::string& key){return key == "books.id";}, true); + const auto queryString = request.get_query([&](const std::string& key){return key == "books.id";}); return {queryString, bookIds}; } catch(const std::out_of_range&) {} @@ -288,7 +288,7 @@ std::pair InternalServer::selectBooks(const Req throw Error(noSuchBookErrorMsg(bookName)); } } - const auto queryString = request.get_query([&](const std::string& key){return key == "books.name";}, true); + const auto queryString = request.get_query([&](const std::string& key){return key == "books.name";}); return {queryString, bookIds}; } catch(const std::out_of_range&) {} @@ -299,7 +299,7 @@ std::pair InternalServer::selectBooks(const Req throw Error(nonParameterizedMessage("no-book-found")); } const auto bookIds = Library::BookIdSet(id_vec.begin(), id_vec.end()); - const auto queryString = request.get_query([&](const std::string& key){return startsWith(key, "books.filter.");}, true); + const auto queryString = request.get_query([&](const std::string& key){return startsWith(key, "books.filter.");}); return {queryString, bookIds}; } diff --git a/src/server/request_context.h b/src/server/request_context.h index 9017a6b28..6d325e583 100644 --- a/src/server/request_context.h +++ b/src/server/request_context.h @@ -96,16 +96,15 @@ class RequestContext { std::string get_query() const { return queryString; } template - std::string get_query(F filter, bool mustEncode) const { + std::string get_query(F filter) const { std::string q; const char* sep = ""; - auto encode = [=](const std::string& value) { return mustEncode?urlEncode(value):value; }; for ( const auto& a : arguments ) { if (!filter(a.first)) { continue; } for (const auto& v: a.second) { - q += sep + encode(a.first) + '=' + encode(v); + q += sep + urlEncode(a.first) + '=' + urlEncode(v); sep = "&"; } }