summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Peter <dev@marius-peter.com>2025-10-20 20:43:00 +0200
committerMarius Peter <dev@marius-peter.com>2025-10-20 20:43:00 +0200
commite5ce6d6f23728bd3c5201fe6133ba75fcd3af4c9 (patch)
tree21b8c7927ee45093eab307aec2173807895a2fcd
parentfddbcb3923d3dd019d07b3f37c033fab36c2cadc (diff)
Realign create-* model accessors.
Creating a model entity must return the newly created entity.
-rw-r--r--models/crop-requirement.rkt1
-rw-r--r--models/crop.rkt10
-rw-r--r--models/fertilizer-product.rkt1
-rw-r--r--models/nutrient.rkt10
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
Copyright 2019--2025 Marius PETER