blob: a56b469c945ffdea1100bf957eb621ad297a9fc6 (
plain)
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
|
#lang racket
(provide
;; Model struct
user
user?
user-id
user-name
user-role
(contract-out
;; SQL CRUD
[get-current-user (-> (or/c user? #f))]
#; [delete-user! (-> user? void?)]))
(require racket/contract
db
sql
"../db/conn.rkt")
(struct user (id name role) #:transparent)
(define (get-current-user)
(define current-user-id "foobar")
(define query (select id name role_id
#:from users
#:where (= id ,current-user-id)
#:limit 1))
(define row (query-maybe-row (current-conn) query))
(cond
[(false? row) #f]
[else
(match-define (vector id name role_id) row)
(user id name role_id)]))
|