diff options
author | David Thompson <dthompson2@worcester.edu> | 2014-08-09 13:15:11 -0400 |
---|---|---|
committer | David Thompson <dthompson2@worcester.edu> | 2014-08-09 13:15:11 -0400 |
commit | 666485c94ffcd2e8ae64392e12fcc80065210bcd (patch) | |
tree | b26ea256e2546baa1e02ba6b505c4c30aef3ad6a /guix-web/controller.scm | |
parent | 5695a3d16606ffe206579e6205eb64285161c17a (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.scm | 11 |
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))) |