aboutsummaryrefslogtreecommitdiff
path: root/guix-data-service/web/revision
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2022-09-14 10:37:33 +0100
committerChristopher Baines <mail@cbaines.net>2022-09-14 10:37:33 +0100
commitec3dba489442e71eae73050cee966024a8c903f0 (patch)
tree6690226363a19e8ce529dbb0f70b0fcd1438ccd3 /guix-data-service/web/revision
parente3062abf33f9887656ce4bd99f34317694533d50 (diff)
downloaddata-service-ec3dba489442e71eae73050cee966024a8c903f0.tar
data-service-ec3dba489442e71eae73050cee966024a8c903f0.tar.gz
Implement the JSON response for package substitute availability
Diffstat (limited to 'guix-data-service/web/revision')
-rw-r--r--guix-data-service/web/revision/controller.scm17
1 files changed, 16 insertions, 1 deletions
diff --git a/guix-data-service/web/revision/controller.scm b/guix-data-service/web/revision/controller.scm
index b1790be..06097f9 100644
--- a/guix-data-service/web/revision/controller.scm
+++ b/guix-data-service/web/revision/controller.scm
@@ -619,7 +619,22 @@
mime-types)
((application/json)
(render-json
- '())) ; TODO
+ `((commit . ,commit-hash)
+ (substitute_servers
+ . ,(list->vector
+ (map (match-lambda
+ ((build-server-id . data)
+ `((server . ((url . ,(assoc-ref build-server-urls
+ build-server-id))))
+ (availability
+ . ,(list->vector
+ (map (match-lambda
+ ((system-and-target . data)
+ `((system . ,(assq-ref system-and-target 'system))
+ (target . ,(assq-ref system-and-target 'target))
+ ,@data)))
+ data))))))
+ substitute-availability))))))
(else
(render-html
#:sxml (view-revision-package-substitute-availability