summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Peter <dev@marius-peter.com>2025-10-19 21:27:58 +0200
committerMarius Peter <dev@marius-peter.com>2025-10-19 21:27:58 +0200
commit70ae2a00292e7e2cfc8530a3301e3f5b0654f5f2 (patch)
tree18a3be31d49c68c391e0142181429ff149e91beb
parent3008eb25f79ef1ed54fcc2b3f5b6635b34394680 (diff)
Simplify retrieval of all nutrient measurements and targets.
-rw-r--r--models/nutrient-measurement.rkt28
-rw-r--r--models/nutrient-target.rkt30
2 files changed, 16 insertions, 42 deletions
diff --git a/models/nutrient-measurement.rkt b/models/nutrient-measurement.rkt
index 8364aa7..28e3bdc 100644
--- a/models/nutrient-measurement.rkt
+++ b/models/nutrient-measurement.rkt
@@ -12,10 +12,8 @@
nutrient?
number?))
nutrient-measurement?)]
- [get-nutrient-measurements (->* ()
- (#:id (or/c #f exact-nonnegative-integer?)
- #:measured-on (or/c #f string?))
- (listof nutrient-measurement?))]
+ [get-nutrient-measurements (-> void?
+ (listof nutrient-measurement?))]
[get-nutrient-measurement (->* ()
(#:id (or/c #f exact-nonnegative-integer?)
#:measured-on (or/c #f string?))
@@ -80,23 +78,13 @@
;; READ
-(define (get-nutrient-measurements #:id [id #f]
- #:measured-on [measured-on #f])
- (define (where-expr)
- (define clauses
- (filter values
- (list (and id (format "id = ~e" id))
- (and measured-on (format "measured_on = ~e" measured-on)))))
- (cond
- [(null? clauses) ""]
- [else (format "WHERE ~a" (string-join clauses " AND "))]))
- (define query (string-join
- `("SELECT id, measured_on"
- "FROM nutrient_measurements"
- ,(where-expr)
- "ORDER BY id ASC")))
+(define (get-nutrient-measurements)
(for/list ([(id* measured-on*)
- (in-query (current-conn) query)])
+ (in-query (current-conn)
+ (string-join
+ `("SELECT id, measured_on"
+ "FROM nutrient_measurements"
+ "ORDER BY id ASC")))])
(nutrient-measurement id* measured-on*)))
(define (get-nutrient-measurement #:id [id #f]
diff --git a/models/nutrient-target.rkt b/models/nutrient-target.rkt
index 6483997..e9c168e 100644
--- a/models/nutrient-target.rkt
+++ b/models/nutrient-target.rkt
@@ -12,12 +12,8 @@
nutrient?
number?))
nutrient-target?)]
- [get-nutrient-targets (->* ()
- (#:id
- (or/c #f exact-nonnegative-integer?)
- #:effective-on
- (or/c #f string?))
- (listof nutrient-target?))]
+ [get-nutrient-targets (-> void?
+ (listof nutrient-target?))]
[get-nutrient-target (->* ()
(#:id
(or/c #f exact-nonnegative-integer?)
@@ -85,23 +81,13 @@
;; READ
-(define (get-nutrient-targets #:id [id #f]
- #:effective-on [effective-on #f])
- (define (where-expr)
- (define clauses
- (filter values
- (list (and id (format "id = ~e" id))
- (and effective-on (format "effective_on = ~e" effective-on)))))
- (cond
- [(null? clauses) ""]
- [else (format "WHERE ~a" (string-join clauses " AND "))]))
- (define query (string-join
- `("SELECT id, effective_on"
- "FROM nutrient_targets"
- ,(where-expr)
- "ORDER BY id ASC")))
+(define (get-nutrient-targets)
(for/list ([(id* effective-on*)
- (in-query (current-conn) query)])
+ (in-query (current-conn)
+ (string-join
+ `("SELECT id, effective_on"
+ "FROM nutrient_targets"
+ "ORDER BY id ASC")))])
(nutrient-target id* effective-on*)))
(define (get-nutrient-target #:id [id #f]
Copyright 2019--2025 Marius PETER