[Racket] Ferti hydroponic nutrient solver, redux.
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