From 3c53050a981c700208bf6ed5bb68785b335f41f6 Mon Sep 17 00:00:00 2001 From: Marius Peter Date: Sun, 14 Dec 2025 18:14:26 +0100 Subject: Fix crop update logic. --- models/crop.rkt | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'models/crop.rkt') 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 -- cgit v1.2.3