diff options
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")) |