summaryrefslogtreecommitdiff
path: root/models
diff options
context:
space:
mode:
authorMarius Peter <dev@marius-peter.com>2025-11-30 11:58:25 +0100
committerMarius Peter <dev@marius-peter.com>2025-11-30 11:58:25 +0100
commit1a8775dfe5786e71e7486e0d26d7dda627db2335 (patch)
tree40b3b294f8ac4c02b5c7bc45746ef787e1bde102 /models
parent355bbfd898a8b61797b3a077f15c5f97ab7ebb04 (diff)
Refactor 'measured-on' to 'measurement-date'.
Diffstat (limited to 'models')
-rw-r--r--models/nutrient-measurement.rkt58
1 files changed, 29 insertions, 29 deletions
diff --git a/models/nutrient-measurement.rkt b/models/nutrient-measurement.rkt
index ae0e2ef..1f8bd7b 100644
--- a/models/nutrient-measurement.rkt
+++ b/models/nutrient-measurement.rkt
@@ -3,14 +3,14 @@
(provide nutrient-measurement
nutrient-measurement?
nutrient-measurement-id
- (rename-out [nutrient-measurement-measured-on nutrient-measurement-date]
+ (rename-out [nutrient-measurement-measurement-date nutrient-measurement-date]
[nutrient-measurement-nutrient-values nutrient-measurement-values])
(contract-out
[create-nutrient-measurement! (-> string? nutrient-value-hash/c nutrient-measurement?)]
[get-nutrient-measurements (-> (listof nutrient-measurement?))]
[get-nutrient-measurement
(->* ()
- (#:id exact-nonnegative-integer? #:measured-on string?)
+ (#:id exact-nonnegative-integer? #:date string?)
(or/c nutrient-measurement? #f))]
[get-nutrient-measurement-values (-> nutrient-measurement-or-id/c nutrient-value-hash/c)]
[get-nutrient-measurement-value
@@ -25,14 +25,14 @@
"../db/conn.rkt"
"nutrient.rkt")
-(struct nutrient-measurement (id measured-on nutrient-values)
+(struct nutrient-measurement (id measurement-date nutrient-values)
#:transparent
#:property prop:custom-write
(λ (v out _)
(fprintf out
"Measurement #~a on ~a\n"
(nutrient-measurement-id v)
- (nutrient-measurement-measured-on v))
+ (nutrient-measurement-measurement-date v))
(for ([(n v) (in-hash (nutrient-measurement-nutrient-values v))])
(fprintf out
"~a ~a\n"
@@ -50,14 +50,14 @@
;; CREATE
-(define (create-nutrient-measurement! measured-on nutrient-values)
+(define (create-nutrient-measurement! measurement-date nutrient-values)
(or
- (get-nutrient-measurement #:measured-on measured-on)
+ (get-nutrient-measurement #:date measurement-date)
(with-tx
- (query-exec (current-conn) (insert #:into nutrient_measurements #:set [measured_on ,measured-on]))
+ (query-exec (current-conn) (insert #:into nutrient_measurements #:set [measurement_date ,measurement-date]))
(define nm-id
(query-value (current-conn)
- (select id #:from nutrient_measurements #:where (= measured_on ,measured-on))))
+ (select id #:from nutrient_measurements #:where (= measurement_date ,measurement-date))))
(query-exec (current-conn)
(insert #:into nutrient_value_sets #:set [nutrient_measurement_id ,nm-id]))
(define nvs-id
@@ -69,7 +69,7 @@
#:set [value_set_id ,nvs-id]
[nutrient_id ,(nutrient-id n)]
[value_ppm ,v])))
- (get-nutrient-measurement #:measured-on measured-on))))
+ (get-nutrient-measurement #:date measurement-date))))
;; READ
@@ -83,38 +83,38 @@
#:on (= n.id nv.nutrient_id))))
(define (grouped-row->nutrient-measurement row)
- (match-define (vector nm-id measured-on residuals) row)
- (nutrient-measurement nm-id measured-on (residuals->nutrient-value-hash residuals)))
+ (match-define (vector nm-id measurement-date residuals) row)
+ (nutrient-measurement nm-id measurement-date (residuals->nutrient-value-hash residuals)))
(define (get-nutrient-measurements)
(define grouped-rows
(query-rows (current-conn)
(select nm.id
- nm.measured_on
+ nm.measurement_date
n.id
n.canonical_name
n.french_name
n.formula
nv.value_ppm
#:from (TableExpr:AST ,joined)
- #:order-by nm.measured_on
+ #:order-by nm.measurement_date
#:desc)
#:group '#(0 1)))
(for/list ([row grouped-rows])
(grouped-row->nutrient-measurement row)))
-(define (get-nutrient-measurement #:id [nm-id #f] #:measured-on [measured-on #f])
+(define (get-nutrient-measurement #:id [nm-id #f] #:date [measurement-date #f])
(define where
(cond
- [(and nm-id measured-on)
- (scalar-expr-qq (and (= nm.id ,nm-id) (= nm.measured_on ,measured-on)))]
+ [(and nm-id measurement-date)
+ (scalar-expr-qq (and (= nm.id ,nm-id) (= nm.measurement_date ,measurement-date)))]
[nm-id (scalar-expr-qq (= nm.id ,nm-id))]
- [measured-on (scalar-expr-qq (= nm.measured_on ,measured-on))]
- [else (error 'get-nutrient-measurement "either #:id or #:measured-on must be provided")]))
+ [measurement-date (scalar-expr-qq (= nm.measurement_date ,measurement-date))]
+ [else (error 'get-nutrient-measurement "either #:id or #:date must be provided")]))
(define grouped-rows
(query-rows (current-conn)
(select nm.id
- nm.measured_on
+ nm.measurement_date
n.id
n.canonical_name
n.french_name
@@ -122,7 +122,7 @@
nv.value_ppm
#:from (TableExpr:AST ,joined)
#:where (ScalarExpr:AST ,where)
- #:order-by nm.measured_on
+ #:order-by nm.measurement_date
#:desc)
#:group '#(0 1)))
(match grouped-rows
@@ -154,7 +154,7 @@
(select value_ppm
#:from (TableExpr:AST ,joined)
#:where (= nv.nutrient_id ,(nutrient-id nutrient))
- #:order-by nm.measured_on
+ #:order-by nm.measurement_date
#:desc
#:limit 1)))
@@ -165,16 +165,16 @@
n.canonical_name
n.french_name
n.formula
- nm.measured_on
+ nm.measurement_date
nv.value_ppm
#:from (TableExpr:AST ,joined)
- #:order-by nm.measured_on
+ #:order-by nm.measurement_date
#:desc)
#:group '(#(0 1 2 3))))
(for/hash ([row grouped-rows])
(match-define (vector n-id n-canonical-name n-french-name n-formula residual-rows) row)
- ;; residual-rows is a non-empty list of vectors: #(measured_on value_ppm)
- (match-define (vector _measured-on value-ppm) (first residual-rows))
+ ;; residual-rows is a non-empty list of vectors: #(measurement_date value_ppm)
+ (match-define (vector _ value-ppm) (first residual-rows))
(values (nutrient n-id n-canonical-name n-french-name n-formula) value-ppm)))
;; UPDATE
@@ -210,15 +210,15 @@
(define phosphorus (get-nutrient #:name "Phosphorus"))
(create-nutrient-measurement! measurement-date (hash nitrogen 12.3 phosphorus 4.5))
(check-equal? (length (get-nutrient-measurements)) 1)
- (define nm (get-nutrient-measurement #:measured-on measurement-date))
+ (define nm (get-nutrient-measurement #:date measurement-date))
(check-true (nutrient-measurement? nm))
- (check-equal? (nutrient-measurement-measured-on nm) measurement-date))
+ (check-equal? (nutrient-measurement-measurement-date nm) measurement-date))
(test-case "Check all measurement values"
(define nitrogen (get-nutrient #:name "Nitrogen"))
(define phosphorus (get-nutrient #:name "Phosphorus"))
- (define nm (get-nutrient-measurement #:measured-on measurement-date))
+ (define nm (get-nutrient-measurement #:date measurement-date))
(check-equal? (get-nutrient-measurement-value nm nitrogen) 12.3)
(check-equal? (get-nutrient-measurement-value nm phosphorus) 4.5)
@@ -241,7 +241,7 @@
(check-equal? (get-latest-nutrient-measurement-value phosphorus) 8.9))
(test-case "Delete measurement and cascade to measurement values"
- (define nm (get-nutrient-measurement #:measured-on measurement-date))
+ (define nm (get-nutrient-measurement #:date measurement-date))
(delete-nutrient-measurement! nm)
(check-false (get-nutrient-measurement #:id (nutrient-measurement-id nm)))
(check-equal? (length (get-nutrient-measurements))
Copyright 2019--2026 Marius PETER