diff options
-rw-r--r-- | src/cuirass/http.scm | 17 | ||||
-rw-r--r-- | tests/http.scm | 7 |
2 files changed, 17 insertions, 7 deletions
diff --git a/src/cuirass/http.scm b/src/cuirass/http.scm index 39d8711..de27ea5 100644 --- a/src/cuirass/http.scm +++ b/src/cuirass/http.scm @@ -146,16 +146,19 @@ Hydra format." (let* ((uri (request-uri request)) (query (uri-query uri))) (if query - (map (lambda (param) + (fold (lambda (param params) (match (string-split param #\=) ((key param) (let ((key-symbol (string->symbol key))) - (cons key-symbol - (match key-symbol - ('id (string->number param)) - ('nr (string->number param)) - (_ param))))))) - (string-split query #\&)) + (cons (cons key-symbol + (match key-symbol + ('id (string->number param)) + ('nr (string->number param)) + (_ param))) + params))) + (_ #f))) + '() + (string-split query #\&)) '()))) diff --git a/tests/http.scm b/tests/http.scm index 1bcd056..f1d6e46 100644 --- a/tests/http.scm +++ b/tests/http.scm @@ -255,6 +255,13 @@ (test-cuirass-uri "/api/latestbuilds?nr=1&jobset=gnu"))))) + (test-equal "/api/latestbuilds?nr&jobset=gnu" + 500 + (response-code + (http-get + (test-cuirass-uri + "/api/latestbuilds?nr&jobset=gnu")))) + (test-equal "/api/queue?nr=100" `("fake-2.0" ,(build-status scheduled)) (match (json-string->scm |