summaryrefslogtreecommitdiff
path: root/models/crop.rkt
diff options
context:
space:
mode:
Diffstat (limited to 'models/crop.rkt')
-rw-r--r--models/crop.rkt11
1 files changed, 5 insertions, 6 deletions
diff --git a/models/crop.rkt b/models/crop.rkt
index 135de7d..ba93550 100644
--- a/models/crop.rkt
+++ b/models/crop.rkt
@@ -7,7 +7,7 @@
(contract-out [create-crop! (-> crop? crop?)]
[get-crops (-> (listof crop?))]
[get-crop (->* () (#:id db-id? #:name string?) (or/c crop? #f))]
- [update-crop! (->* (db-id?) (#:name string?) (or/c crop? #f))]
+ [update-crop! (-> crop? void?)]
[delete-crop! (-> db-id? void?)]))
(require db
@@ -52,11 +52,10 @@
;; UPDATE
-(define (update-crop! id #:name [name #f])
- (cond
- [name (query-exec (current-conn) (update crops #:set [canonical_name ,name] #:where (= id ,id)))]
- [else (void)])
- (or (get-crop #:id id) (error 'update-crop! "No crop with id ~a" id)))
+(define (update-crop! c)
+ (define id (or (crop-id c) (raise-argument-error 'update-crop! "db-id?" (crop-id c))))
+ (with-tx (query-exec (current-conn)
+ (update crops #:set [canonical_name ,(crop-name c)] #:where [= id ,id]))))
;; DELETE
Copyright 2019--2026 Marius PETER