From f7933807ac8d18b9e3d93fd4ce486900e9051f47 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 27 Sep 2020 16:26:45 +0100 Subject: Add a JSON representation for repositories --- guix-data-service/web/repository/controller.scm | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'guix-data-service/web/repository') diff --git a/guix-data-service/web/repository/controller.scm b/guix-data-service/web/repository/controller.scm index 7b2cb86..e8e1b52 100644 --- a/guix-data-service/web/repository/controller.scm +++ b/guix-data-service/web/repository/controller.scm @@ -44,9 +44,23 @@ (match method-and-path-components (('GET "repositories") (let ((git-repositories (all-git-repositories conn))) - (render-html - #:sxml - (view-git-repositories git-repositories)))) + (case (most-appropriate-mime-type + '(application/json text/html) + mime-types) + ((application/json) + (render-json + `((repositories + . ,(list->vector + (map (match-lambda + ((id label url cgit-base-url) + `((id . ,id) + (label . ,label) + (url . ,url)))) + git-repositories)))))) + (else + (render-html + #:sxml + (view-git-repositories git-repositories)))))) (('GET "repository" id) (match (select-git-repository conn id) ((label url cgit-url-base) -- cgit v1.2.3