diff options
| author | Marius Peter <dev@marius-peter.com> | 2025-12-13 17:54:41 +0100 |
|---|---|---|
| committer | Marius Peter <dev@marius-peter.com> | 2025-12-13 17:54:41 +0100 |
| commit | 3b7f77480ab5b5fe1a14bfba7a6f1b486aaa9a0a (patch) | |
| tree | 25a0840e5e243bb09e2be7aad99b7971f8c795d7 /handlers.rkt | |
| parent | 649d6fa5ad5883f62c4df200b7a9958bba12fe3d (diff) | |
Add fertilizer product updating logic.
Diffstat (limited to 'handlers.rkt')
| -rw-r--r-- | handlers.rkt | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/handlers.rkt b/handlers.rkt index 010fe8e..759dbfe 100644 --- a/handlers.rkt +++ b/handlers.rkt @@ -43,7 +43,9 @@ [("ferti" "fertilizers" "new") #:method "get" new-fertilizer] [("ferti" "fertilizers" "create") #:method "post" create-fertilizer] [("ferti" "fertilizers" (integer-arg)) #:method "get" show-fertilizer] - [("ferti" "fertilizers" "destroy" (integer-arg)) #:method "get" destroy-fertilizer] + [("ferti" "fertilizers" (integer-arg) "edit") #:method "get" edit-fertilizer] + [("ferti" "fertilizers" "update") #:method "post" update-fertilizer] + [("ferti" "fertilizers" (integer-arg) "destroy") #:method "get" destroy-fertilizer] ;; Default [("") #:method "get" index] [else fallback])) @@ -122,15 +124,23 @@ (render-page (new-fertilizer-page))) (define (create-fertilizer req) - (define-values (canonical-name brand-name nutrient-values) - (formlet-process (fertilizer-formlet) req)) - (create-fertilizer-product! canonical-name brand-name nutrient-values) + (define new-fertilizer-product (formlet-process (fertilizer-formlet) req)) + (create-fertilizer-product! new-fertilizer-product) (redirect-to "/ferti/fertilizers")) (define (show-fertilizer _ id) (define fp (get-fertilizer-product #:id id)) (render-page (show-fertilizer-page fp))) +(define (edit-fertilizer _ id) + (define fp (get-fertilizer-product #:id id)) + (render-page (edit-fertilizer-page fp))) + +(define (update-fertilizer req) + (define edited-fertilizer-product (formlet-process (fertilizer-formlet) req)) + (update-fertilizer-product! edited-fertilizer-product) + (redirect-to "/ferti/fertilizers")) + (define (destroy-fertilizer _ id) (delete-fertilizer-product! id) (redirect-to "/ferti/fertilizers")) |