diff options
| author | Marius Peter <dev@marius-peter.com> | 2025-11-01 18:06:25 +0100 |
|---|---|---|
| committer | Marius Peter <dev@marius-peter.com> | 2025-11-01 18:06:25 +0100 |
| commit | f0239beb0744260579e9631e84c53145ba1ce7d6 (patch) | |
| tree | 6632dd84fd81ec4b8a05d5ffa6a97463d1e92ae1 | |
| parent | dda53eeb77977b42ae2f50fa7113f195a15bed5f (diff) | |
Use match-define where sensible.
| -rw-r--r-- | models/crop-requirement.rkt | 54 | ||||
| -rw-r--r-- | models/fertilizer-product.rkt | 17 | ||||
| -rw-r--r-- | models/nutrient-measurement.rkt | 15 | ||||
| -rw-r--r-- | models/nutrient-target.rkt | 15 |
4 files changed, 47 insertions, 54 deletions
diff --git a/models/crop-requirement.rkt b/models/crop-requirement.rkt index e668c40..4faa6bb 100644 --- a/models/crop-requirement.rkt +++ b/models/crop-requirement.rkt @@ -35,35 +35,31 @@ ;; CREATE (define (create-crop-requirement! profile nutrient-values [crop #f]) - (define existing-crop-requirement (get-crop-requirement #:profile profile)) - (define (new-crop-requirement) - (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 nv - [(cons n v) - (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 existing-crop-requirement - (new-crop-requirement))) + (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)))) ;; READ diff --git a/models/fertilizer-product.rkt b/models/fertilizer-product.rkt index 9859537..409d746 100644 --- a/models/fertilizer-product.rkt +++ b/models/fertilizer-product.rkt @@ -53,15 +53,14 @@ #:from nutrient_value_sets #:where (= fertilizer_product_id ,fp-id)))) (for ([nv nutrient-values]) - (match nv - [(cons n v) - (query-exec (current-conn) - (insert #:into nutrient_values - #:set - [value_set_id ,nvs-id] - [nutrient_id ,(nutrient-id n)] - [value_ppm ,v]))]))) - (get-fertilizer-product #:canonical-name canonical-name))) + (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-fertilizer-product #:canonical-name canonical-name)))) ;; READ diff --git a/models/nutrient-measurement.rkt b/models/nutrient-measurement.rkt index 523888b..23ee9e3 100644 --- a/models/nutrient-measurement.rkt +++ b/models/nutrient-measurement.rkt @@ -54,14 +54,13 @@ #:from nutrient_value_sets #:where (= nutrient_measurement_id ,nm-id)))) (for ([nv nutrient-values]) - (match nv - [(cons n v) - (query-exec (current-conn) - (insert #:into nutrient_values - #:set - [value_set_id ,nvs-id] - [nutrient_id ,(nutrient-id n)] - [value_ppm ,v]))])) + (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-nutrient-measurement #:measured-on measured-on)))) diff --git a/models/nutrient-target.rkt b/models/nutrient-target.rkt index 6f25564..7ae9003 100644 --- a/models/nutrient-target.rkt +++ b/models/nutrient-target.rkt @@ -54,14 +54,13 @@ #:from nutrient_value_sets #:where (= nutrient_target_id ,nt-id)))) (for ([nv nutrient-values]) - (match nv - [(cons n v) - (query-exec (current-conn) - (insert #:into nutrient_values - #:set - [value_set_id ,nvs-id] - [nutrient_id ,(nutrient-id n)] - [value_ppm ,v]))])) + (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-nutrient-target #:effective-on effective-on)))) |