From fc64ba9e3f119b3e283bd3750385c477381d549a Mon Sep 17 00:00:00 2001 From: Marius Peter Date: Sat, 13 Dec 2025 22:50:05 +0100 Subject: Add measurement editing + updating logic. --- models/nutrient-measurement.rkt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'models/nutrient-measurement.rkt') 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) -- cgit v1.2.3