summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Peter <dev@marius-peter.com>2025-12-14 18:14:26 +0100
committerMarius Peter <dev@marius-peter.com>2025-12-14 18:14:26 +0100
commit3c53050a981c700208bf6ed5bb68785b335f41f6 (patch)
treef4e19333412472eba44fb8bf6b99a629bcf24559
parent0cd2e789ef98bfef70d733d66129142a9abc765f (diff)
Fix crop update logic.
-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