From b075a71d1e077e644942fbc74e7200e3e81ff9be Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Mon, 29 Jul 2019 20:39:57 +0100 Subject: [PATCH] Add a function to get the cgit URL bases for revisions To enable adding a link to cgit to the comparison page. --- guix-data-service/model/guix-revision.scm | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) 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) + ",")))))