diff options
author | Christopher Baines <mail@cbaines.net> | 2019-02-08 11:27:07 +0000 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2019-02-08 11:27:07 +0000 |
commit | 552723cef15285d36f1ca8ae87d8672a093522d2 (patch) | |
tree | 53749ff1e8f9359e73ac455e957c58aa0f9050f3 | |
parent | 0a49c0a84af6fc95a6deba8584da7517b135abf2 (diff) | |
download | data-service-552723cef15285d36f1ca8ae87d8672a093522d2.tar data-service-552723cef15285d36f1ca8ae87d8672a093522d2.tar.gz |
Add an error page for unknown commits
-rw-r--r-- | guix-data-service/model/guix-revision.scm | 3 | ||||
-rw-r--r-- | guix-data-service/web/controller.scm | 58 | ||||
-rw-r--r-- | guix-data-service/web/view/html.scm | 9 |
3 files changed, 40 insertions, 30 deletions
diff --git a/guix-data-service/model/guix-revision.scm b/guix-data-service/model/guix-revision.scm index d9a8976..34df5e6 100644 --- a/guix-data-service/model/guix-revision.scm +++ b/guix-data-service/model/guix-revision.scm @@ -14,7 +14,8 @@ conn "SELECT id FROM guix_revisions WHERE commit = $1 LIMIT 1" (list commit)) (((id)) - id))) + id) + (() #f))) (define (insert-guix-revision conn url commit store_path) (define insert diff --git a/guix-data-service/web/controller.scm b/guix-data-service/web/controller.scm index 7fc934a..0d6e2e1 100644 --- a/guix-data-service/web/controller.scm +++ b/guix-data-service/web/controller.scm @@ -65,30 +65,40 @@ uri-query parse-query-string (cut assoc-ref <> "target_commit")))) - (let-values - (((base-packages-vhash target-packages-vhash) - (package-data->package-data-vhashes - (package-differences-data conn - (commit->revision-id conn base-commit) - (commit->revision-id conn target-commit))))) - (let* ((new-packages - (package-data-vhashes->new-packages base-packages-vhash - target-packages-vhash)) - (removed-packages - (package-data-vhashes->removed-packages base-packages-vhash - target-packages-vhash)) - (version-changes - (package-data-version-changes base-packages-vhash - target-packages-vhash)) - (other-changes - (package-data-other-changes base-packages-vhash - target-packages-vhash))) + (let ((base-revision-id (commit->revision-id conn base-commit)) + (target-revision-id (commit->revision-id conn target-commit))) + (cond + ((eq? base-revision-id #f) + (apply render-html + (compare-unknown-commit base-commit))) + ((eq? target-revision-id #f) (apply render-html - (compare base-commit - target-commit - new-packages - removed-packages - version-changes - other-changes)))))) + (compare-unknown-commit target-commit))) + (else + (let-values + (((base-packages-vhash target-packages-vhash) + (package-data->package-data-vhashes + (package-differences-data conn + base-revision-id + target-revision-id)))) + (let* ((new-packages + (package-data-vhashes->new-packages base-packages-vhash + target-packages-vhash)) + (removed-packages + (package-data-vhashes->removed-packages base-packages-vhash + target-packages-vhash)) + (version-changes + (package-data-version-changes base-packages-vhash + target-packages-vhash)) + (other-changes + (package-data-other-changes base-packages-vhash + target-packages-vhash))) + (apply render-html + (compare base-commit + target-commit + new-packages + removed-packages + version-changes + other-changes))))))))) ((GET path ...) (render-static-asset request)))) diff --git a/guix-data-service/web/view/html.scm b/guix-data-service/web/view/html.scm index 9699ef6..019aa49 100644 --- a/guix-data-service/web/view/html.scm +++ b/guix-data-service/web/view/html.scm @@ -24,7 +24,7 @@ #:use-module (srfi srfi-19) #:export (index compare - unknown + compare-unknown-commit error-page)) (define* (header) @@ -226,14 +226,13 @@ (td ,version)))) other-changes))))))))) -(define (unknown id) +(define (compare-unknown-commit commit) (layout #:body `(,(header) (div (@ (class "container")) - (h1 "Patch not found") - (p "There is no submission with id " (strong ,id)) - (p (a (@ (href "/")) "Try another one?")))))) + (h1 "Unknown commit") + (p "No known revision with commit " (strong (samp ,commit))))))) (define (error-page message) (layout |