From 70ae2a00292e7e2cfc8530a3301e3f5b0654f5f2 Mon Sep 17 00:00:00 2001 From: Marius Peter Date: Sun, 19 Oct 2025 21:27:58 +0200 Subject: Simplify retrieval of all nutrient measurements and targets. --- models/nutrient-target.rkt | 30 ++++++++---------------------- 1 file changed, 8 insertions(+), 22 deletions(-) (limited to 'models/nutrient-target.rkt') 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] -- cgit v1.2.3