Add a prefix in get_search_filter

The prefix will be used to parse a "query to select book" in different context.
For now we have only one context : selecting books for the catalog search.
But we will want to select books to do fulltext search on them
(will be done in later commit)
This commit is contained in:
Matthieu Gautier 2022-04-20 10:24:34 +02:00
parent 76ebfd7ea4
commit 4438106c2f
1 changed files with 8 additions and 8 deletions

View File

@ -95,29 +95,29 @@ inline std::string normalizeRootUrl(std::string rootUrl)
return rootUrl.empty() ? rootUrl : "/" + rootUrl; return rootUrl.empty() ? rootUrl : "/" + rootUrl;
} }
Filter get_search_filter(const RequestContext& request) Filter get_search_filter(const RequestContext& request, const std::string& prefix="")
{ {
auto filter = kiwix::Filter().valid(true).local(true); auto filter = kiwix::Filter().valid(true).local(true);
try { try {
filter.query(request.get_argument("q")); filter.query(request.get_argument(prefix+"q"));
} catch (const std::out_of_range&) {} } catch (const std::out_of_range&) {}
try { try {
filter.maxSize(request.get_argument<unsigned long>("maxsize")); filter.maxSize(request.get_argument<unsigned long>(prefix+"maxsize"));
} catch (...) {} } catch (...) {}
try { try {
filter.name(request.get_argument("name")); filter.name(request.get_argument(prefix+"name"));
} catch (const std::out_of_range&) {} } catch (const std::out_of_range&) {}
try { try {
filter.category(request.get_argument("category")); filter.category(request.get_argument(prefix+"category"));
} catch (const std::out_of_range&) {} } catch (const std::out_of_range&) {}
try { try {
filter.lang(request.get_argument("lang")); filter.lang(request.get_argument(prefix+"lang"));
} catch (const std::out_of_range&) {} } catch (const std::out_of_range&) {}
try { try {
filter.acceptTags(kiwix::split(request.get_argument("tag"), ";")); filter.acceptTags(kiwix::split(request.get_argument(prefix+"tag"), ";"));
} catch (...) {} } catch (...) {}
try { try {
filter.rejectTags(kiwix::split(request.get_argument("notag"), ";")); filter.rejectTags(kiwix::split(request.get_argument(prefix+"notag"), ";"));
} catch (...) {} } catch (...) {}
return filter; return filter;
} }