diff options
| author | Marius Peter <dev@marius-peter.com> | 2025-10-20 20:43:00 +0200 |
|---|---|---|
| committer | Marius Peter <dev@marius-peter.com> | 2025-10-20 20:43:00 +0200 |
| commit | e5ce6d6f23728bd3c5201fe6133ba75fcd3af4c9 (patch) | |
| tree | 21b8c7927ee45093eab307aec2173807895a2fcd | |
| parent | fddbcb3923d3dd019d07b3f37c033fab36c2cadc (diff) | |
Realign create-* model accessors.
Creating a model entity must return the newly created entity.
| -rw-r--r-- | models/crop-requirement.rkt | 1 | ||||
| -rw-r--r-- | models/crop.rkt | 10 | ||||
| -rw-r--r-- | models/fertilizer-product.rkt | 1 | ||||
| -rw-r--r-- | models/nutrient.rkt | 10 |
4 files changed, 14 insertions, 8 deletions
diff --git a/models/crop-requirement.rkt b/models/crop-requirement.rkt index d1c6ddd..67569ea 100644 --- a/models/crop-requirement.rkt +++ b/models/crop-requirement.rkt @@ -50,7 +50,6 @@ ;; CREATE - (define (create-crop-requirement! profile nutrient-values [crop #f]) (define existing-crop-requirement (get-crop-requirement #:profile profile)) (define (new-crop-requirement) diff --git a/models/crop.rkt b/models/crop.rkt index f77cbaa..9550bfd 100644 --- a/models/crop.rkt +++ b/models/crop.rkt @@ -29,9 +29,13 @@ ;; CREATE (define (create-crop! name) - (query-exec (current-conn) - (insert #:into crops - #:set [canonical_name ,name]))) + (define existing-crop (get-crop #:name name)) + (define (new-crop) + (query-exec (current-conn) + (insert #:into crops + #:set [canonical_name ,name]))) + (or existing-crop + (new-crop))) ;; READ diff --git a/models/fertilizer-product.rkt b/models/fertilizer-product.rkt index 073ef4f..ffc4e5e 100644 --- a/models/fertilizer-product.rkt +++ b/models/fertilizer-product.rkt @@ -43,7 +43,6 @@ ;; CREATE - (define (create-fertilizer-product! canonical-name nutrient-values [brand-name #f]) (define existing-fertilizer-product (get-fertilizer-product #:canonical-name canonical-name)) (define (new-fertilizer-product) diff --git a/models/nutrient.rkt b/models/nutrient.rkt index f2ef4fd..6bbaf56 100644 --- a/models/nutrient.rkt +++ b/models/nutrient.rkt @@ -31,9 +31,13 @@ ;; CREATE (define (create-nutrient! name formula) - (query-exec (current-conn) - (insert #:into nutrients - #:set [canonical_name ,name] [formula ,formula]))) + (define existing-nutrient (get-nutrient #:name name #:formula formula)) + (define (new-nutrient) + (query-exec (current-conn) + (insert #:into nutrients + #:set [canonical_name ,name] [formula ,formula]))) + (or existing-nutrient + (new-nutrient))) ;; READ |