aboutsummaryrefslogtreecommitdiff
path: root/guix-data-service/web/controller.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guix-data-service/web/controller.scm')
-rw-r--r--guix-data-service/web/controller.scm48
1 files changed, 11 insertions, 37 deletions
diff --git a/guix-data-service/web/controller.scm b/guix-data-service/web/controller.scm
index 6f534e9..e89519c 100644
--- a/guix-data-service/web/controller.scm
+++ b/guix-data-service/web/controller.scm
@@ -51,6 +51,7 @@
#:use-module (guix-data-service web sxml)
#:use-module (guix-data-service web query-parameters)
#:use-module (guix-data-service web util)
+ #:use-module (guix-data-service web jobs controller)
#:use-module (guix-data-service web view html)
#:export (controller))
@@ -881,27 +882,6 @@
derivations))
#:extra-headers http-headers-for-unchanging-content)))))
-(define (render-jobs mime-types conn)
- (render-html
- #:sxml (view-jobs
- (select-jobs-and-events conn))))
-
-(define (render-job-queue mime-types conn)
- (render-html
- #:sxml (view-job-queue
- (select-unprocessed-jobs-and-events conn))))
-
-(define (render-job mime-types conn job-id query-parameters)
- (render-html
- #:sxml (view-job
- job-id
- query-parameters
- (log-for-job conn job-id
- #:character-limit
- (assq-ref query-parameters 'characters)
- #:start-character
- (assq-ref query-parameters 'start_character)))))
-
(define (parse-commit conn)
(lambda (s)
(if (guix-commit-exists? conn s)
@@ -983,6 +963,13 @@
(define path
(uri-path (request-uri request)))
+ (define (delegate-to f)
+ (f request
+ method-and-path-components
+ mime-types
+ body
+ conn))
+
(match method-and-path-components
(('GET)
(render-html
@@ -1317,21 +1304,8 @@
(render-compare/packages mime-types
conn
parsed-query-parameters)))
- (('GET "jobs")
- (render-jobs mime-types
- conn))
- (('GET "jobs" "queue")
- (render-job-queue mime-types
- conn))
- (('GET "job" job-id)
- (let ((parsed-query-parameters
- (parse-query-parameters
- request
- `((start_character ,parse-number)
- (characters ,parse-number #:default 1000000)))))
- (render-job mime-types
- conn
- job-id
- parsed-query-parameters)))
+ (('GET "jobs") (delegate-to jobs-controller))
+ (('GET "jobs" "queue") (delegate-to jobs-controller))
+ (('GET "job" job-id) (delegate-to jobs-controller))
(('GET path ...)
(not-found (request-uri request)))))