diff options
| author | Marius Peter <dev@marius-peter.com> | 2025-11-01 12:57:03 +0100 |
|---|---|---|
| committer | Marius Peter <dev@marius-peter.com> | 2025-11-01 12:57:03 +0100 |
| commit | e5cff247aee7f0a6b2f81054d6c3fa60e99b3f37 (patch) | |
| tree | 10b1e019a0e1494ed7990a1ca20aa8d1dec2216a | |
| parent | e0d56fc007e8617cb449d64b90c59e44cb06ed29 (diff) | |
Remove useless intermediary module.
This module does not reduce complexity, nor provide useful
abstractions.
| -rw-r--r-- | models/nutrient-value-set.rkt | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/models/nutrient-value-set.rkt b/models/nutrient-value-set.rkt deleted file mode 100644 index 5f3759a..0000000 --- a/models/nutrient-value-set.rkt +++ /dev/null @@ -1,98 +0,0 @@ -#lang racket - -(provide nutrient-value-set - nutrient-value-set? - nutrient-value-set-id - ;; nutrient-value-set-nm-id - ;; nutrient-value-set-nt-id - ;; nutrient-value-set-cr-id - ;; nutrient-value-set-fp-id - ;; SQL CRUD - (contract-out - [create-nutrient-value-set! (-> symbol? - exact-nonnegative-integer? - (listof (cons/c - nutrient? - number?)) - void?)] - [get-nutrient-value-set (->* () - (#:id exact-nonnegative-integer? - #:nutrient-measurement-id exact-nonnegative-integer? - #:nutrient-target-id exact-nonnegative-integer? - #:crop-requirement-id exact-nonnegative-integer? - #:fertilizer-product-id exact-nonnegative-integer?) - (or/c nutrient-value-set? #f))])) - -(require racket/contract - db - sql - "../db/conn.rkt" - "nutrient.rkt") - -(struct nutrient-value-set (id nm-id nt-id cr-id fp-id) #:transparent) - - -;; CREATE - -(define (create-nutrient-value-set! type id nutrient-values) - (define nvs (case type - [(nutrient-measurement) - (query-exec (current-conn) - (insert #:into nutrient_value_sets - #:set [nutrient_measurement_id ,id])) - (get-nutrient-value-set #:nutrient-measurement-id id)] - [(nutrient-target) - (query-exec (current-conn) - (insert #:into nutrient_value_sets - #:set [nutrient_target_id ,id])) - (get-nutrient-value-set #:nutrient-target-id id)] - [(crop-requirement) - (query-exec (current-conn) - (insert #:into nutrient_value_sets - #:set [crop_requirement_id ,id])) - (get-nutrient-value-set #:crop-requirement-id id)] - [(fertilizer-product) - (query-exec (current-conn) - (insert #:into nutrient_value_sets - #:set [fertilizer_product_id ,id])) - (get-nutrient-value-set #:fertilizer-product-id id)])) - (for ([nv nutrient-values]) - (match nv - [(cons n v) - (query-exec (current-conn) - (insert #:into nutrient_values - #:set - [value_set_id ,(nutrient-value-set-id nvs)] - [nutrient_id ,(nutrient-id n)] - [value_ppm ,v]))]))) - - -;; READ - -(define (get-nutrient-value-set #:id [id #f] - #:nutrient-measurement-id [nm #f] - #:nutrient-target-id [nt #f] - #:crop-requirement-id [cr #f] - #:fertilizer-product-id [fp #f]) - (define (where-expr) - (define clauses - (filter values - (list - (and id (format "id = ~e" id)) - (and nm (format "nutrient_measurement_id = ~e" nm)) - (and nt (format "nutrient_target_id = ~e" nt)) - (and cr (format "crop_requirement = ~e" cr)) - (and fp (format "fertilizer_product = ~e" fp))))) - (cond - [(null? clauses) ""] - [else (format "WHERE ~a" (string-join clauses " AND "))])) - (define query (string-join - `("SELECT *" - "FROM nutrient_value_sets" - ,(where-expr) - "ORDER BY id ASC" - "LIMIT 1"))) - (match (query-maybe-row (current-conn) query) - [(vector id* nm-id* nt-id* cr-id* fp-id*) - (nutrient-value-set id* nm-id* nt-id* cr-id* fp-id*)] - [#f #f])) |