aboutsummaryrefslogtreecommitdiff
path: root/guix-data-service/web/controller.scm
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2019-05-11 16:49:18 +0100
committerChristopher Baines <mail@cbaines.net>2019-05-11 16:49:18 +0100
commit3611f7b1225f66d8d1469d715ba5ad63a0e133cd (patch)
treef9be59a3619ce93d27d7c84c5805e0e66d718d28 /guix-data-service/web/controller.scm
parenta7053846f144155e4459ebfd843b860167ffb7af (diff)
downloaddata-service-3611f7b1225f66d8d1469d715ba5ad63a0e133cd.tar
data-service-3611f7b1225f66d8d1469d715ba5ad63a0e133cd.tar.gz
Add some options to the branch page
Add handling for some query parameters to the branch page. This takes advantage of the improvements for building forms and query parameter validation.
Diffstat (limited to 'guix-data-service/web/controller.scm')
-rw-r--r--guix-data-service/web/controller.scm21
1 files changed, 18 insertions, 3 deletions
diff --git a/guix-data-service/web/controller.scm b/guix-data-service/web/controller.scm
index 658a317..94b8b5e 100644
--- a/guix-data-service/web/controller.scm
+++ b/guix-data-service/web/controller.scm
@@ -348,12 +348,27 @@
(view-branches
(all-branches-with-most-recent-commit conn))))
((GET "branch" branch-name)
- (apply render-html
+ (let ((parsed-query-parameters
+ (parse-query-parameters
+ request
+ `((after_date ,parse-datetime)
+ (before_date ,parse-datetime)
+ (limit_results ,parse-result-limit #:default 100)))))
+ (apply
+ render-html
+ (if (any-invalid-query-parameters? parsed-query-parameters)
+ (view-branch branch-name parsed-query-parameters '())
(view-branch
branch-name
- (most-recent-100-commits-for-branch
+ parsed-query-parameters
+ (most-recent-commits-for-branch
conn
- branch-name))))
+ branch-name
+ #:limit (assq-ref parsed-query-parameters 'limit_results)
+ #:after-date (assq-ref parsed-query-parameters
+ 'after_date)
+ #:before-date (assq-ref parsed-query-parameters
+ 'before_date)))))))
((GET "gnu" "store" filename)
(if (string-suffix? ".drv" filename)
(render-derivation conn (string-append "/gnu/store/" filename))