]> gitweb.factorcode.org Git - factor.git/blob - basis/furnace/recaptcha/example/example.factor
41ade9e96a26ed37373c682be9c58782f11493ce
[factor.git] / basis / furnace / recaptcha / example / example.factor
1 ! Copyright (C) 2009 Doug Coleman.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors db.sqlite furnace.actions furnace.alloy
4 furnace.conversations furnace.recaptcha furnace.redirection
5 html.templates.chloe.compiler http.server
6 http.server.dispatchers http.server.responses io.streams.string
7 kernel urls xml.syntax ;
8 IN: furnace.recaptcha.example
9
10 TUPLE: recaptcha-app < dispatcher recaptcha ;
11
12 : recaptcha-db ( -- obj ) "resource:recaptcha-example" <sqlite-db> ;
13
14 : <recaptcha-challenge> ( -- obj )
15     <page-action>
16         [ validate-recaptcha ] >>validate
17         [ "?good" >url <redirect> ] >>submit
18         { recaptcha-app "example" } >>template ;
19
20 : <test-recaptcha> ( responder -- recaptcha )
21     <recaptcha>
22         "concatenative.org" >>domain
23         "6LeJWQgAAAAAAFlYV7SuBClE9uSpGtV_ZS-qVON7" >>site-key
24         "6LeJWQgAAAAAALh-XJgSSQ6xKygRgJ8-029Ip2Xv" >>secret-key ;
25
26 : <recaptcha-app> ( -- obj )
27     \ recaptcha-app new-dispatcher
28         <recaptcha-challenge> "" add-responder
29         <test-recaptcha>
30         recaptcha-db <alloy> ;