diff options
Diffstat (limited to 'handlers.rkt')
| -rw-r--r-- | handlers.rkt | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/handlers.rkt b/handlers.rkt index c022c3c..fb3f864 100644 --- a/handlers.rkt +++ b/handlers.rkt @@ -11,6 +11,7 @@ "models/user.rkt" "models/nutrient-measurement.rkt" "models/nutrient-target.rkt" + "models/fertilizer-product.rkt" "services/nnls.rkt") (define (wrap-basic-auth handler) @@ -34,6 +35,8 @@ [("measurement" "destroy") #:method "post" destroy-measurement] [("target" "new") #:method "get" new-target] [("target" "create") #:method "post" create-target] + [("fertilizer" "new") #:method "get" new-fertilizer] + [("fertilizer" "create") #:method "post" create-fertilizer] [("") #:method "get" index] [else fallback])) @@ -74,6 +77,19 @@ (create-nutrient-target! effective-on nutrient-values) (redirect-to "/ferti")) +;; Fertilizer products + +(define (new-fertilizer _) + (response/xexpr #:preamble #"<!DOCTYPE html>" (new-fertilizer-page))) + +(define (create-fertilizer req) + (define-values (canonical-name nutrient-values brand-name) + (formlet-process (fertilizer-formlet) req)) + (create-fertilizer-product! canonical-name nutrient-values brand-name) + (redirect-to "/ferti")) + +;; Fallback + (define (fallback _) (response/xexpr #:preamble #"<!DOCTYPE html>" (fallback-page 404))) |