Add JSON representation for the Jobs page
Signed-off-by: Christopher Baines <mail@cbaines.net>
This commit is contained in:
parent
d09a1ca791
commit
60cb07f469
2 changed files with 42 additions and 8 deletions
|
|
@ -19,6 +19,7 @@
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module (guix-data-service web render)
|
#:use-module (guix-data-service web render)
|
||||||
#:use-module (guix-data-service web query-parameters)
|
#:use-module (guix-data-service web query-parameters)
|
||||||
|
#:use-module (guix-data-service web util)
|
||||||
#:use-module (guix-data-service jobs load-new-guix-revision)
|
#:use-module (guix-data-service jobs load-new-guix-revision)
|
||||||
#:use-module (guix-data-service web jobs html)
|
#:use-module (guix-data-service web jobs html)
|
||||||
#:export (jobs-controller))
|
#:export (jobs-controller))
|
||||||
|
|
@ -79,14 +80,38 @@
|
||||||
(assq-ref query-parameters 'before_id)
|
(assq-ref query-parameters 'before_id)
|
||||||
limit-results))
|
limit-results))
|
||||||
(recent-events (select-recent-job-events conn)))
|
(recent-events (select-recent-job-events conn)))
|
||||||
(render-html
|
(case (most-appropriate-mime-type
|
||||||
#:sxml (view-jobs
|
'(application/json text/html)
|
||||||
query-parameters
|
mime-types)
|
||||||
jobs
|
((application/json)
|
||||||
recent-events
|
(render-json
|
||||||
(and limit-results
|
`((recent-events
|
||||||
(>= (length jobs)
|
. ,(list->vector
|
||||||
limit-results))))))
|
(map (match-lambda
|
||||||
|
((_ commit _ _ event occurred_at)
|
||||||
|
`((commit . ,commit)
|
||||||
|
(event . ,event)
|
||||||
|
(occurred_at . ,occurred_at))))
|
||||||
|
recent-events)))
|
||||||
|
(jobs
|
||||||
|
. ,(list->vector
|
||||||
|
(map (match-lambda
|
||||||
|
((_ commit source _ created-at _ events log)
|
||||||
|
`((commit . ,commit)
|
||||||
|
(source . ,source)
|
||||||
|
(created-at . ,created-at)
|
||||||
|
(events . ,events)
|
||||||
|
(log . ,log))))
|
||||||
|
jobs))))))
|
||||||
|
(else
|
||||||
|
(render-html
|
||||||
|
#:sxml (view-jobs
|
||||||
|
query-parameters
|
||||||
|
jobs
|
||||||
|
recent-events
|
||||||
|
(and limit-results
|
||||||
|
(>= (length jobs)
|
||||||
|
limit-results))))))))
|
||||||
|
|
||||||
(define (render-job-events mime-types conn query-parameters)
|
(define (render-job-events mime-types conn query-parameters)
|
||||||
(let* ((limit-results
|
(let* ((limit-results
|
||||||
|
|
|
||||||
|
|
@ -108,6 +108,15 @@
|
||||||
(button (@ (type "submit")
|
(button (@ (type "submit")
|
||||||
(class "btn btn-lg btn-primary"))
|
(class "btn btn-lg btn-primary"))
|
||||||
"Update results")))))))
|
"Update results")))))))
|
||||||
|
(div
|
||||||
|
(@ (class "btn-group pull-right")
|
||||||
|
(role "group"))
|
||||||
|
(a (@ (class "btn btn-lg btn-default")
|
||||||
|
(href ,(string-append
|
||||||
|
"/jobs.json"))
|
||||||
|
(role "button"))
|
||||||
|
"View JSON"))
|
||||||
|
|
||||||
(div
|
(div
|
||||||
(@ (class "row"))
|
(@ (class "row"))
|
||||||
(div
|
(div
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue