diff options
author | Christopher Baines <mail@cbaines.net> | 2019-07-29 20:39:57 +0100 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2019-07-29 20:39:57 +0100 |
commit | b075a71d1e077e644942fbc74e7200e3e81ff9be (patch) | |
tree | 6878c8db998c5d90413596e805c5410af6bbd35c /guix-data-service/model | |
parent | f2c7cc83ed28b6857e07cb6c58a4c9fee22802eb (diff) | |
download | data-service-b075a71d1e077e644942fbc74e7200e3e81ff9be.tar data-service-b075a71d1e077e644942fbc74e7200e3e81ff9be.tar.gz |
Add a function to get the cgit URL bases for revisions
To enable adding a link to cgit to the comparison page.
Diffstat (limited to 'guix-data-service/model')
-rw-r--r-- | guix-data-service/model/guix-revision.scm | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/guix-data-service/model/guix-revision.scm b/guix-data-service/model/guix-revision.scm index 6966bff..85ae9b7 100644 --- a/guix-data-service/model/guix-revision.scm +++ b/guix-data-service/model/guix-revision.scm @@ -7,7 +7,8 @@ commit->revision-id insert-guix-revision guix-commit-exists? - guix-revision-exists?)) + guix-revision-exists? + guix-revisions-cgit-url-bases)) (define (count-guix-revisions conn) (first @@ -56,3 +57,21 @@ (let ((result (caar (exec-query conn query)))) (string=? result "t"))) + +(define (guix-revisions-cgit-url-bases conn guix-revision-ids) + (map + car + (exec-query + conn + (simple-format #f " +SELECT cgit_url_base +FROM git_repositories +WHERE cgit_url_base IS NOT NULL AND id IN ( + SELECT git_repository_id + FROM guix_revisions + WHERE id IN (VALUES ~A));" + (string-join + (map (lambda (id) + (string-append "(" id ")")) + guix-revision-ids) + ","))))) |