1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
(define-module (render captcha-example)
#:use-module (srfi srfi-19) ;; date
#:use-module (web server)
#:use-module (web request)
#:use-module (web response)
#:use-module (web uri)
#:use-module (webserver-utils)
#:use-module (sxml simple)
#:use-module (utils)
#:use-module (plugin captcha-interface)
#:use-module (render captcha)
#:export (make-captcha-page))
(define (make-captcha-page captcha request body)
(define captcha-result (make-captcha captcha 'post request body))
(cond
((eq? (request-method request) 'GET)
`((message . #f)
(columns . ,(make-columns (captcha-sxml captcha-result)))))
((captcha-did-solve-correct captcha-result)
`((message . (success "correct!"))
(columns . ,(make-columns (captcha-sxml captcha-result)))))
(#t
`((message . (error ,(captcha-failure captcha-result)))
(columns . ,(make-columns (captcha-sxml captcha-result)))))))
(define (make-columns captcha-sxml)
`(((a (@ (href "/")) "back")
(hr)
(form (@ (class "register-form")
(method "POST")
(action ""))
,captcha-sxml))))