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 /models | |
| parent | dda53eeb77977b42ae2f50fa7113f195a15bed5f (diff) | |
Use match-define where sensible.
Diffstat (limited to 'models')
| -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))))  |