diff options
| author | Marius Peter <dev@marius-peter.com> | 2025-12-14 18:14:26 +0100 |
|---|---|---|
| committer | Marius Peter <dev@marius-peter.com> | 2025-12-14 18:14:26 +0100 |
| commit | 3c53050a981c700208bf6ed5bb68785b335f41f6 (patch) | |
| tree | f4e19333412472eba44fb8bf6b99a629bcf24559 | |
| parent | 0cd2e789ef98bfef70d733d66129142a9abc765f (diff) | |
Fix crop update logic.
| -rw-r--r-- | models/crop.rkt | 11 |
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 |