From 7df7ad070b7a6146ad638294e379d976d363763e Mon Sep 17 00:00:00 2001 From: Marius Peter Date: Wed, 12 Nov 2025 18:23:40 +0100 Subject: Add user entity to model. --- models/user.rkt | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 models/user.rkt (limited to 'models') diff --git a/models/user.rkt b/models/user.rkt new file mode 100644 index 0000000..2cbf4fe --- /dev/null +++ b/models/user.rkt @@ -0,0 +1,33 @@ +#lang racket + +(provide + ;; Struct definitions + user + user? + user-id + user-name + user-role + ;; SQL CRUD + (contract-out + [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)])) -- cgit v1.2.3