summaryrefslogtreecommitdiff
path: root/guix-web/controller.scm
diff options
context:
space:
mode:
authorDavid Thompson <dthompson2@worcester.edu>2014-08-09 13:15:11 -0400
committerDavid Thompson <dthompson2@worcester.edu>2014-08-09 13:15:11 -0400
commit666485c94ffcd2e8ae64392e12fcc80065210bcd (patch)
treeb26ea256e2546baa1e02ba6b505c4c30aef3ad6a /guix-web/controller.scm
parent5695a3d16606ffe206579e6205eb64285161c17a (diff)
Add JSON endpoint for a specific package name.
* guix-web/controller.scm (controller): Allow use of '.json' file extension. * guix-web/view.scm (view-package-json, license->json, package->json): New procedures. (all-packages-json): Refactor. (view-package): Filter out non-package inputs.
Diffstat (limited to 'guix-web/controller.scm')
-rw-r--r--guix-web/controller.scm11
1 files changed, 10 insertions, 1 deletions
diff --git a/guix-web/controller.scm b/guix-web/controller.scm
index 6640810..f3858d3 100644
--- a/guix-web/controller.scm
+++ b/guix-web/controller.scm
@@ -17,7 +17,9 @@
(define-module (guix-web controller)
#:use-module (ice-9 match)
+ #:use-module (srfi srfi-1)
#:use-module (web request)
+ #:use-module (gnu packages)
#:use-module (guix-web render)
#:use-module (guix-web view)
#:export (controller))
@@ -31,7 +33,14 @@
((GET "packages.json")
(render-json (all-packages-json)))
((GET "package" name)
- (render-html (view-package name)))
+ (match (string-split name #\.)
+ ((name ext)
+ (render-json
+ (if (string=? ext "json")
+ (view-package-json name)
+ '())))
+ ((name)
+ (render-html (view-package name)))))
((GET "librejs")
(render-html (librejs)))
(_ #f)))