aboutsummaryrefslogtreecommitdiff
path: root/mod/module.cli
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2024-08-06 22:03:31 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2024-08-07 19:19:22 +0300
commit443088f6093d3420212be0e1af3b9e802dca9362 (patch)
treeb1ec3b0c62ee0b8d66b0cbf21e21d68ae0d4f806 /mod/module.cli
parent7db53790ca2d2c004bfd00b503eca59a8d084870 (diff)
Add support for advanced package search
Diffstat (limited to 'mod/module.cli')
-rw-r--r--mod/module.cli47
1 files changed, 44 insertions, 3 deletions
diff --git a/mod/module.cli b/mod/module.cli
index 7b0c0d2..41684bd 100644
--- a/mod/module.cli
+++ b/mod/module.cli
@@ -545,6 +545,15 @@ namespace brep
}
};
+ class advanced_search: package_db,
+ search,
+ page,
+ repository_url,
+ package_version_metadata,
+ handler
+ {
+ };
+
class package_details: package, package_db,
search,
page,
@@ -871,11 +880,11 @@ namespace brep
// Web handler HTTP request parameters.
//
+ // Use parameters long names in the C++ code, short aliases (if present) in
+ // HTTP URL.
+ //
namespace params
{
- // Use parameters long names in the C++ code, short aliases (if present)
- // in HTTP URL.
- //
class packages
{
// Display package search result list starting from this page.
@@ -890,6 +899,38 @@ namespace brep
string q | _;
};
+ class advanced_search
+ {
+ // Display advanced package search result list starting from this page.
+ //
+ uint16_t page | p;
+
+ // Advanced package search filter options.
+ //
+
+ // Package name wildcard. An empty value is treated the same way as *.
+ //
+ // Note that the advanced-search parameter is renamed to '_' by the root
+ // handler (see the request_proxy class for details).
+ //
+ string name | _;
+
+ // Package version. If empty or *, then no version constraint is applied.
+ // Otherwise the package version must match the value exactly.
+ //
+ string version | pv;
+
+ // Package project wildcard. An empty value is treated the same way as *.
+ //
+ string project | pr;
+
+ // Package version reviews. If *, then no reviews-related constraint is
+ // applied. Otherwise the value is supposed to be the one of the
+ // following statuses: reviewed and unreviewed.
+ //
+ string reviews | rv = "*";
+ };
+
class package_details
{
// Display package version search result list starting from this page.