diff options
author | Christopher Baines <mail@cbaines.net> | 2022-11-17 16:18:28 +0000 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2022-11-17 16:18:28 +0000 |
commit | 9fc5821180e0220095bce57b73bd19568725630e (patch) | |
tree | b7ea721f7bf8602fc56bac3668abb660f40a2098 /guix-data-service | |
parent | cc61bb5f1307446d72a0b2fee56e364ceaff8e65 (diff) | |
download | data-service-9fc5821180e0220095bce57b73bd19568725630e.tar data-service-9fc5821180e0220095bce57b73bd19568725630e.tar.gz |
Include more information about invalid query parameters
In the /compare response.
This should enable qa.guix.gnu.org to detect when the base revision for a
comparison is unknown.
Diffstat (limited to 'guix-data-service')
-rw-r--r-- | guix-data-service/web/compare/controller.scm | 47 |
1 files changed, 23 insertions, 24 deletions
diff --git a/guix-data-service/web/compare/controller.scm b/guix-data-service/web/compare/controller.scm index b0ae639..9aec025 100644 --- a/guix-data-service/web/compare/controller.scm +++ b/guix-data-service/web/compare/controller.scm @@ -254,6 +254,19 @@ ((application/json) (render-json `((error . "invalid query") + (query_parameters + . ,(map + (match-lambda + ((key . val) + (cons key + (match val + (($ <invalid-query-parameter> value message) + `((invalid_value . ,value) + (message . ,(call-with-output-string + (lambda (port) + (sxml->html message port)))))) + (val val))))) + query-parameters)) (base_job . ,base-job) (target_job . ,target-job)))) (else @@ -433,30 +446,16 @@ (render-json '((error . "invalid query")))) (else - (letpar& ((base-job - (match (assq-ref query-parameters 'base_commit) - (($ <invalid-query-parameter> value) - (with-thread-postgresql-connection - (lambda (conn) - (select-job-for-commit conn value)))) - (_ #f))) - (target-job - (match (assq-ref query-parameters 'target_commit) - (($ <invalid-query-parameter> value) - (with-thread-postgresql-connection - (lambda (conn) - (select-job-for-commit conn value)))) - (_ #f)))) - (render-html - #:sxml (compare query-parameters - 'datetime - #f - #f - #f - #f - #f - #f - #f))))) + (render-html + #:sxml (compare query-parameters + 'datetime + #f + #f + #f + #f + #f + #f + #f)))) (let ((base-branch (assq-ref query-parameters 'base_branch)) (base-datetime (assq-ref query-parameters 'base_datetime)) |