summaryrefslogtreecommitdiff
path: root/models
diff options
context:
space:
mode:
Diffstat (limited to 'models')
-rw-r--r--models/nutrient-measurement.rkt15
1 files changed, 15 insertions, 0 deletions
diff --git a/models/nutrient-measurement.rkt b/models/nutrient-measurement.rkt
index 676ec1b..3a5238b 100644
--- a/models/nutrient-measurement.rkt
+++ b/models/nutrient-measurement.rkt
@@ -18,6 +18,7 @@
[get-latest-nutrient-measurement (-> maybe-nutrient-measurement?)]
[get-latest-nutrient-measurement-value (-> nutrient? maybe-nutrient-value?)]
[get-latest-nutrient-measurement-values (-> nutrient-value-hash/c)]
+ [update-nutrient-measurement! (-> nutrient-measurement? void?)]
[delete-nutrient-measurement! (-> nutrient-measurement-or-id/c void?)]))
(require db
@@ -187,6 +188,20 @@
;; UPDATE
+(define (update-nutrient-measurement! nm)
+ (define id
+ (or (nutrient-measurement-id nm)
+ (raise-argument-error 'update-nutrient-measurement! "db-id?" (nutrient-measurement-id nm))))
+ (with-tx
+ (query-exec (current-conn)
+ (update nutrient_measurements
+ #:set [measurement_date ,(nutrient-measurement-measurement-date nm)]
+ #:where [= id ,id]))
+ (define nvs-id
+ (query-value (current-conn)
+ (select id #:from nutrient_value_sets #:where [= nutrient_measurement_id ,id])))
+ (update-nutrient-values! (current-conn) nvs-id (nutrient-measurement-nutrient-values nm))))
+
;; DELETE
(define (delete-nutrient-measurement! nm-or-id)
Copyright 2019--2026 Marius PETER