summaryrefslogtreecommitdiff
path: root/handlers.rkt
diff options
context:
space:
mode:
Diffstat (limited to 'handlers.rkt')
-rw-r--r--handlers.rkt18
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"))
Copyright 2019--2026 Marius PETER