aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--guix-data-service/model/guix-revision.scm3
-rw-r--r--guix-data-service/web/controller.scm58
-rw-r--r--guix-data-service/web/view/html.scm9
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