From e49ca1f3999127bee5888b44c3900b5483ecebd0 Mon Sep 17 00:00:00 2001 From: Marius Peter Date: Thu, 20 Nov 2025 11:27:50 +0100 Subject: raco fmt. --- models/crop-requirement.rkt | 47 +++++++++++++++++++++------------------------ 1 file changed, 22 insertions(+), 25 deletions(-) (limited to 'models/crop-requirement.rkt') diff --git a/models/crop-requirement.rkt b/models/crop-requirement.rkt index 8d99434..f6193bf 100644 --- a/models/crop-requirement.rkt +++ b/models/crop-requirement.rkt @@ -1,6 +1,5 @@ #lang racket -;; Model struct (provide crop-requirement crop-requirement? crop-requirement-id @@ -8,7 +7,6 @@ crop-requirement-crop-id (rename-out [crop-requirement-nutrient-values crop-requirement-values]) (contract-out - ;; SQL CRUD [create-crop-requirement! (->* (string? (listof nutrient-value-pair/c)) ((or/c #f crop?)) crop-requirement?)] [get-crop-requirements (-> (listof crop-requirement?))] @@ -18,9 +16,7 @@ (or/c crop-requirement? #f))] [get-crop-requirement-values (-> crop-requirement? (listof nutrient-value-pair/c))] [get-crop-requirement-value (-> crop-requirement? nutrient? number?)] - [get-latest-crop-requirement-value (-> nutrient? number?)] [delete-crop-requirement! (-> crop-requirement? void?)] - ;; Helpers [average-crop-requirement-nutrient-values (-> (listof (cons/c crop-requirement? (and/c real? (>=/c 0) (<=/c 100)))) (listof nutrient-value-pair/c))])) @@ -39,27 +35,28 @@ ;; CREATE (define (create-crop-requirement! profile nutrient-values [crop #f]) - (or (get-crop-requirement #:profile profile) - (with-tx - (query-exec - (current-conn) - (if crop - (insert #:into crop_requirements #:set [crop_id ,(crop-id crop)] [profile ,profile]) - (insert #:into crop_requirements #:set [profile ,profile]))) - (define cr-id (crop-requirement-id (get-crop-requirement #:profile profile))) - (query-exec (current-conn) - (insert #:into nutrient_value_sets #:set [crop_requirement_id ,cr-id])) - (define nvs-id - (query-value (current-conn) - (select id #:from nutrient_value_sets #:where (= crop_requirement_id ,cr-id)))) - (for ([nv nutrient-values]) - (match-define (cons n v) nv) - (query-exec (current-conn) - (insert #:into nutrient_values - #:set [value_set_id ,nvs-id] - [nutrient_id ,(nutrient-id n)] - [value_ppm ,v]))) - (get-crop-requirement #:profile profile)))) + (or + (get-crop-requirement #:profile profile) + (with-tx + (query-exec + (current-conn) + (if crop + (insert #:into crop_requirements #:set [crop_id ,(crop-id crop)] [profile ,profile]) + (insert #:into crop_requirements #:set [profile ,profile]))) + (define cr-id + (query-value (current-conn) (select id #:from crop_requirements #:where (= profile ,profile)))) + (query-exec (current-conn) (insert #:into nutrient_value_sets #:set [crop_requirement_id ,cr-id])) + (define nvs-id + (query-value (current-conn) + (select id #:from nutrient_value_sets #:where (= crop_requirement_id ,cr-id)))) + (for ([nv nutrient-values]) + (match-define (cons n v) nv) + (query-exec (current-conn) + (insert #:into nutrient_values + #:set [value_set_id ,nvs-id] + [nutrient_id ,(nutrient-id n)] + [value_ppm ,v]))) + (get-crop-requirement #:profile profile)))) ;; READ -- cgit v1.2.3