diff options
| author | Marius Peter <dev@marius-peter.com> | 2025-11-01 18:07:00 +0100 |
|---|---|---|
| committer | Marius Peter <dev@marius-peter.com> | 2025-11-01 18:07:00 +0100 |
| commit | 1f3aad4a542981d1681989accdfcf5bad38b8b2c (patch) | |
| tree | ffbc1b14ca943c6f3c38f6c64ef1df5cd85a1f44 | |
| parent | f0239beb0744260579e9631e84c53145ba1ce7d6 (diff) | |
Realign 'crop' model interface.
| -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 |