summaryrefslogtreecommitdiff
path: root/handlers.rkt
diff options
context:
space:
mode:
Diffstat (limited to 'handlers.rkt')
-rw-r--r--handlers.rkt51
1 files changed, 41 insertions, 10 deletions
diff --git a/handlers.rkt b/handlers.rkt
index 051254b..fb95091 100644
--- a/handlers.rkt
+++ b/handlers.rkt
@@ -47,18 +47,29 @@
void))
(define-values (fapg-dispatch fapg-url)
- (dispatch-rules [("ferti" "index") #:method "get" ferti-index]
+ (dispatch-rules [("index") #:method "get" index]
+ ;; Ferti
+ [("ferti" "index") #:method "get" ferti-index]
[("ferti" "measurements") #:method "get" ferti-measurements]
[("ferti" "targets") #:method "get" ferti-targets]
[("ferti" "recipe") #:method "get" ferti-recipe]
[("ferti" "fertilizers") #:method "get" ferti-fertilizers]
- [("measurement" "new") #:method "get" new-measurement]
- [("measurement" "create") #:method "post" create-measurement]
- [("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]
+ ;; Nutrient measurements
+ [("ferti" "measurement" "new") #:method "get" new-measurement]
+ [("ferti" "measurement" "create") #:method "post" create-measurement]
+ [("ferti" "measurement" (integer-arg)) #:method "get" show-measurement]
+ [("ferti" "measurement" (integer-arg)) #:method "delete" destroy-measurement]
+ ;; Nutrient targets
+ [("ferti" "target" "new") #:method "get" new-target]
+ [("ferti" "target" "create") #:method "post" create-target]
+ [("ferti" "target" (integer-arg)) #:method "get" show-target]
+ [("ferti" "target" (integer-arg)) #:method "delete" destroy-target]
+ ;; Fertilizer products
+ [("ferti" "fertilizer" "new") #:method "get" new-fertilizer]
+ [("ferti" "fertilizer" "create") #:method "post" create-fertilizer]
+ [("ferti" "fertilizer" (integer-arg)) #:method "get" show-fertilizer]
+ [("ferti" "fertilizer" (integer-arg)) #:method "delete" destroy-fertilizer]
+ ;; Default
[("") #:method "get" index]
[else fallback]))
@@ -104,8 +115,12 @@
(create-nutrient-measurement! measured-on nutrient-values)
(redirect-to "/ferti/measurements"))
-(define (destroy-measurement req)
- (delete-nutrient-measurement! req)
+(define (show-measurement _ id)
+ (define nm (get-nutrient-measurement #:id id))
+ (render-page (show-measurement-page nm)))
+
+(define (destroy-measurement _ id)
+ (delete-nutrient-measurement! id)
(redirect-to "/ferti/index"))
;; Nutrient targets
@@ -118,6 +133,14 @@
(create-nutrient-target! effective-on nutrient-values)
(redirect-to "/ferti/targets"))
+(define (show-target _ id)
+ (define nt (get-nutrient-target #:id id))
+ (render-page (show-target-page nt)))
+
+(define (destroy-target _ id)
+ (delete-nutrient-target! id)
+ (redirect-to "/ferti/targets"))
+
;; Fertilizer products
(define (new-fertilizer _)
@@ -129,6 +152,14 @@
(create-fertilizer-product! canonical-name brand-name nutrient-values)
(redirect-to "/ferti/fertilizers"))
+(define (show-fertilizer _ id)
+ (define fp (get-fertilizer-product #:id id))
+ (render-page (show-fertilizer-page fp)))
+
+(define (destroy-fertilizer _ id)
+ (delete-fertilizer-product! id)
+ (redirect-to "/ferti/fertilizers"))
+
;; Fallback
(define (fallback _)
Copyright 2019--2026 Marius PETER