[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
03/03: Improve the parse-commit invalid parameter handling
From: |
Christopher Baines |
Subject: |
03/03: Improve the parse-commit invalid parameter handling |
Date: |
Sat, 28 Nov 2020 14:40:06 -0500 (EST) |
cbaines pushed a commit to branch master
in repository data-service.
commit de3ca9d07423b33cf7441df7374f798df3eb4c67
Author: Christopher Baines <mail@cbaines.net>
AuthorDate: Sat Nov 28 19:36:47 2020 +0000
Improve the parse-commit invalid parameter handling
---
guix-data-service/web/compare/controller.scm | 34 ++++++++++++++++++++++------
1 file changed, 27 insertions(+), 7 deletions(-)
diff --git a/guix-data-service/web/compare/controller.scm
b/guix-data-service/web/compare/controller.scm
index 17da52c..b970904 100644
--- a/guix-data-service/web/compare/controller.scm
+++ b/guix-data-service/web/compare/controller.scm
@@ -53,13 +53,33 @@
s)
(define (parse-commit s)
- (if (parallel-via-thread-pool-channel
- (with-thread-postgresql-connection
- (lambda (conn)
- (guix-commit-exists? conn s))))
- s
- (make-invalid-query-parameter
- s "unknown commit")))
+ (parallel-via-thread-pool-channel
+ (with-thread-postgresql-connection
+ (lambda (conn)
+ (if (guix-commit-exists? conn s)
+ s
+ (let* ((job-details
+ (select-job-for-commit conn s))
+ (job-state
+ (assq-ref job-details 'state)))
+ (if job-details
+ (make-invalid-query-parameter
+ s
+ (cond
+ ((string=? job-state "queued")
+ `("data unavailable, "
+ (a (@ (href ,(string-append
+ "/revision/" s)))
+ "yet to process revision")))
+ ((string=? job-state "failed")
+ `("data unavailable, "
+ (a (@ (href ,(string-append
+ "/revision/" s)))
+ "failed to process revision")))
+ (else
+ "unknown job state")))
+ (make-invalid-query-parameter
+ s "unknown commit"))))))))
(define (parse-derivation file-name)
(if (parallel-via-thread-pool-channel