summaryrefslogtreecommitdiff
path: root/models/crop.rkt
diff options
context:
space:
mode:
authorMarius Peter <dev@marius-peter.com>2025-10-20 20:41:07 +0200
committerMarius Peter <dev@marius-peter.com>2025-10-20 20:41:07 +0200
commitfddbcb3923d3dd019d07b3f37c033fab36c2cadc (patch)
tree87a185fe72e0c57e663677a004d7d24ef31fa314 /models/crop.rkt
parent9620cae7bba35503a2ea4679938f76749a34245a (diff)
Simplify get-* model accessors.
Diffstat (limited to 'models/crop.rkt')
-rw-r--r--models/crop.rkt27
1 files changed, 6 insertions, 21 deletions
diff --git a/models/crop.rkt b/models/crop.rkt
index 7163cbd..f77cbaa 100644
--- a/models/crop.rkt
+++ b/models/crop.rkt
@@ -8,10 +8,7 @@
;; SQL CRUD
(contract-out
[create-crop! (-> string? void?)]
- [get-crops (->* ()
- (#:id (or/c #f exact-nonnegative-integer?)
- #:name (or/c #f string?))
- (listof crop?))]
+ [get-crops (-> (listof crop?))]
[get-crop (->* ()
(#:id (or/c #f exact-nonnegative-integer?)
#:name (or/c #f string?))
@@ -39,24 +36,12 @@
;; READ
-(define (get-crops #:id [id #f]
- #:name [name #f])
- (define (where-expr)
- (define clauses
- (filter values
- (list
- (and id (format "id = ~e" id))
- (and name (format "canonical_name = ~e" name)))))
- (cond
- [(null? clauses) ""]
- [else (format "WHERE ~a" (string-join clauses " AND "))]))
- (define query (string-join
- `("SELECT id, canonical_name"
- "FROM crops"
- ,(where-expr)
- "ORDER BY id ASC")))
+(define (get-crops)
(for/list ([(id* name*)
- (in-query (current-conn) query)])
+ (in-query (current-conn)
+ (select id canonical_name
+ #:from crops
+ #:order-by id #:asc))])
(crop id* name*)))
(define (get-crop #:id [id #f]
Copyright 2019--2025 Marius PETER