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