Proof-of-concept of a simple DSL for specifying servlets.
This commit is contained in:
parent
03c094214b
commit
186fe2d0ec
3 changed files with 33 additions and 5 deletions
|
@ -29,20 +29,36 @@
|
|||
bar-db
|
||||
(
|
||||
bar-db-init!
|
||||
bd-barcode-lookup
|
||||
)
|
||||
|
||||
(import scheme
|
||||
(chicken base)
|
||||
postgresql)
|
||||
postgresql
|
||||
sql-null)
|
||||
|
||||
(define bar-db-conn (make-parameter #f))
|
||||
(define bd-conn (make-parameter #f))
|
||||
|
||||
(define (bar-db-init! name host user pass)
|
||||
(bar-db-conn
|
||||
(bd-conn
|
||||
(connect
|
||||
`((dbname . ,name)
|
||||
(host . ,host)
|
||||
(user . ,user)
|
||||
(password . ,pass)))))
|
||||
|
||||
(define (sql-null->symbol v)
|
||||
(if (sql-null? v)
|
||||
'null
|
||||
v))
|
||||
|
||||
(define (bd-barcode-lookup bc)
|
||||
(sql-null->symbol
|
||||
(car
|
||||
(row-values
|
||||
(query
|
||||
(bd-conn)
|
||||
"select sum(amount*case side when 'credit' then -1 else 1 end) amt from transaction_splits where account=$1"
|
||||
bc)))))
|
||||
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue