View raw

1 #lang racket 2 3 (provide user 4 user? 5 user-id 6 user-name 7 user-role 8 (contract-out [get-current-user (-> (or/c user? #f))])) 9 10 (require db 11 sql 12 "../db/conn.rkt") 13 14 (struct user (id name role) #:transparent) 15 16 (define (get-current-user) 17 (define current-user-id "foobar") 18 (define query (select id name role_id #:from users #:where (= id ,current-user-id) #:limit 1)) 19 (define row (query-maybe-row (current-conn) query)) 20 (cond 21 [(false? row) #f] 22 [else 23 (match-define (vector id name role_id) row) 24 (user id name role_id)])) 25