aboutsummaryrefslogtreecommitdiff
path: root/guix-data-service/web/query-parameters.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guix-data-service/web/query-parameters.scm')
-rw-r--r--guix-data-service/web/query-parameters.scm15
1 files changed, 15 insertions, 0 deletions
diff --git a/guix-data-service/web/query-parameters.scm b/guix-data-service/web/query-parameters.scm
index 41e9beb..12ac4c6 100644
--- a/guix-data-service/web/query-parameters.scm
+++ b/guix-data-service/web/query-parameters.scm
@@ -150,6 +150,21 @@
(() (cons name default))
(x (cons name x))))
+ ((name processor #:no-default-when fields #:default default)
+ (let ((use-default?
+ (every (lambda (field)
+ (not (memq field fields)))
+ fields)))
+ (match (assq name request-query-parameters)
+ (#f (if use-default?
+ (cons name default)
+ #f))
+ ((_ . "") (if use-default?
+ (cons name default)
+ #f))
+ ((_ . value) (cons name
+ (processor value))))))
+
((name processor #:default default)
(match (assq name request-query-parameters)
(#f (cons name default))