diff options
Diffstat (limited to 'models')
| -rw-r--r-- | models/crop.rkt | 15 | 
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  |