summaryrefslogtreecommitdiff
path: root/models/nutrient-measurement.rkt
diff options
context:
space:
mode:
Diffstat (limited to 'models/nutrient-measurement.rkt')
-rw-r--r--models/nutrient-measurement.rkt31
1 files changed, 10 insertions, 21 deletions
diff --git a/models/nutrient-measurement.rkt b/models/nutrient-measurement.rkt
index 88177da..a9904d7 100644
--- a/models/nutrient-measurement.rkt
+++ b/models/nutrient-measurement.rkt
@@ -50,27 +50,16 @@
;; CREATE
(define (create-nutrient-measurement! measurement-date nutrient-values)
- (or
- (get-nutrient-measurement #:date measurement-date)
- (with-tx
- (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 (= measurement_date ,measurement-date))))
- (query-exec (current-conn)
- (insert #:into nutrient_value_sets #:set [nutrient_measurement_id ,nm-id]))
- (define nvs-id
- (query-value (current-conn)
- (select id #:from nutrient_value_sets #:where (= nutrient_measurement_id ,nm-id))))
- (for ([(n v) (in-hash nutrient-values)])
- (query-exec (current-conn)
- (insert #:into nutrient_values
- #:set [value_set_id ,nvs-id]
- [nutrient_id ,(nutrient-id n)]
- [value_ppm ,v])))
- (get-nutrient-measurement #:date measurement-date))))
+ (with-tx (define nm-id
+ (insert-id (query (current-conn)
+ (insert #:into nutrient_measurements
+ #:set [measurement_date ,measurement-date]))))
+ (define nvs-id
+ (insert-id (query (current-conn)
+ (insert #:into nutrient_value_sets
+ #:set [nutrient_measurement_id ,nm-id]))))
+ (insert-nutrient-values (current-conn) nvs-id nutrient-values)
+ (nutrient-measurement nm-id measurement-date nutrient-values)))
;; READ
Copyright 2019--2026 Marius PETER