aboutsummaryrefslogtreecommitdiff
path: root/guix-qa-frontpage/guix-data-service.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guix-qa-frontpage/guix-data-service.scm')
-rw-r--r--guix-qa-frontpage/guix-data-service.scm21
1 files changed, 21 insertions, 0 deletions
diff --git a/guix-qa-frontpage/guix-data-service.scm b/guix-qa-frontpage/guix-data-service.scm
index d931c3f..422cabf 100644
--- a/guix-qa-frontpage/guix-data-service.scm
+++ b/guix-qa-frontpage/guix-data-service.scm
@@ -26,6 +26,8 @@
guix-data-service-error->sexp
guix-data-service-error-summary
+ guix-data-service-error-sexp->error
+ guix-data-service-error-invalid-query?
guix-data-service-request
@@ -150,6 +152,25 @@
(else
(simple-format #f "~A" (guix-data-service-error-response-body exn)))))
+(define (guix-data-service-error-sexp->error sexp)
+ (make-guix-data-service-error
+ (if (eq? (assq-ref sexp 'exception)
+ 'guix-data-service-invalid-parameters)
+ `(("error" . "invalid-query")
+ ,@sexp)
+ sexp)
+ #f
+ #f))
+
+(define (guix-data-service-error-invalid-query? exn)
+ (and
+ (guix-data-service-error? exn)
+ (string=?
+ (or (assoc-ref (guix-data-service-error-response-body exn)
+ "error")
+ "")
+ "invalid-query")))
+
(define* (guix-data-service-request url #:key (retry-times 0) (retry-delay 5))
(define (make-request)
(let ((port