summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--models/crop.rkt15
1 files changed, 7 insertions, 8 deletions
diff --git a/models/crop.rkt b/models/crop.rkt
index acb5afb..243f783 100644
--- a/models/crop.rkt
+++ b/models/crop.rkt
@@ -7,7 +7,7 @@
crop-id crop-name
;; SQL CRUD
(contract-out
- [create-crop! (-> string? void?)]
+ [create-crop! (-> string? crop?)]
[get-crops (-> (listof crop?))]
[get-crop (->* ()
(#:id (or/c #f exact-nonnegative-integer?)
@@ -29,13 +29,12 @@
;; CREATE
(define (create-crop! 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)))
+ (or (get-crop #:name name)
+ (begin
+ (query-exec (current-conn)
+ (insert #:into crops
+ #:set [canonical_name ,name]))
+ (get-crop #:name name))))
;; READ
Copyright 2019--2025 Marius PETER