Fix crop update logic.

Commit
3c53050a981c700208bf6ed5bb68785b335f41f6
Author
Marius Peter <dev@marius-peter.com>
Author date
Committer
Marius Peter <dev@marius-peter.com>
Committer date
models/crop.rkt
index 135de7d2..ba93550c 100644..100644
@@ -7,7 +7,7 @@
7 7 (contract-out [create-crop! (-> crop? crop?)]
8 8 [get-crops (-> (listof crop?))]
9 9 [get-crop (->* () (#:id db-id? #:name string?) (or/c crop? #f))]
10 Removed: [update-crop! (->* (db-id?) (#:name string?) (or/c crop? #f))]
10 Added: [update-crop! (-> crop? void?)]
11 11 [delete-crop! (-> db-id? void?)]))
12 12
13 13 (require db
@@ -52,11 +52,10 @@
52 52
53 53 ;; UPDATE
54 54
55 Removed: (define (update-crop! id #:name [name #f])
56 Removed: (cond
57 Removed: [name (query-exec (current-conn) (update crops #:set [canonical_name ,name] #:where (= id ,id)))]
58 Removed: [else (void)])
59 Removed: (or (get-crop #:id id) (error 'update-crop! "No crop with id ~a" id)))
55 Added: (define (update-crop! c)
56 Added: (define id (or (crop-id c) (raise-argument-error 'update-crop! "db-id?" (crop-id c))))
57 Added: (with-tx (query-exec (current-conn)
58 Added: (update crops #:set [canonical_name ,(crop-name c)] #:where [= id ,id]))))
60 59
61 60 ;; DELETE
62 61