[Racket] Ferti hydroponic nutrient solver, redux.
Update handlers to reflect model evolution.
handlers.rkt
@@ -12,7 +12,6 @@
12
12
"models/user.rkt"
13
13
"models/nutrient.rkt"
14
14
"models/nutrient-measurement.rkt"
15
Removed:
"models/nutrient-target.rkt"
16
15
"models/crop-rotation.rkt"
17
16
"models/fertilizer-product.rkt"
18
17
"services/nnls.rkt")
@@ -26,18 +25,19 @@
26
25
;; Ferti
27
26
[("ferti" "index") #:method "get" ferti-index]
28
27
[("ferti" "measurements-and-rotations") #:method "get" ferti-measurements-and-rotations]
29
Removed:
[("ferti" "recipe") #:method "get" ferti-recipe]
28
Added:
[("ferti" "recipe" (string-arg)) #:method "get" ferti-recipe]
30
29
[("ferti" "fertilizers") #:method "get" ferti-fertilizers]
31
30
;; Nutrient measurements
32
31
[("ferti" "measurement" "new") #:method "get" new-measurement]
33
32
[("ferti" "measurement" "create") #:method "post" create-measurement]
34
33
[("ferti" "measurement" (integer-arg)) #:method "get" show-measurement]
35
Removed:
[("ferti" "measurement" (integer-arg)) #:method "delete" destroy-measurement]
34
Added:
[("ferti" "measurement" "destroy" (integer-arg)) #:method "get" destroy-measurement]
36
35
;; Nutrient targets
37
Removed:
[("ferti" "target" "new") #:method "get" new-target]
38
Removed:
[("ferti" "target" "create") #:method "post" create-target]
39
Removed:
[("ferti" "target" (integer-arg)) #:method "get" show-target]
40
Removed:
[("ferti" "target" (integer-arg)) #:method "delete" destroy-target]
36
Added:
[("ferti" "rotation" "new") #:method "get" new-rotation]
37
Added:
[("ferti" "rotation" "new" (string-arg)) #:method "get" new-rotation-for-date]
38
Added:
[("ferti" "rotation" "create") #:method "post" create-rotation]
39
Added:
[("ferti" "rotation" (integer-arg)) #:method "get" show-rotation]
40
Added:
[("ferti" "rotation" "destroy" (integer-arg)) #:method "get" destroy-rotation]
41
41
;; Fertilizer products
42
42
[("ferti" "fertilizer" "new") #:method "get" new-fertilizer]
43
43
[("ferti" "fertilizer" "create") #:method "post" create-fertilizer]
@@ -67,9 +67,9 @@
67
67
(define rotations (get-crop-rotations))
68
68
(render-page (ferti-measurements-and-rotations-page nutrients measurements rotations)))
69
69
70
Removed:
(define (ferti-recipe _)
71
Removed:
(define ferti-recipe (find-ferti-recipe))
72
Removed:
(render-page (ferti-recipe-page ferti-recipe)))
70
Added:
(define (ferti-recipe _ date-string)
71
Added:
(define ferti-recipe (find-ferti-recipe date-string))
72
Added:
(render-page (ferti-recipe-page date-string ferti-recipe)))
73
73
74
74
(define (ferti-fertilizers _)
75
75
(define fertilizers (get-fertilizer-products))
@@ -91,25 +91,28 @@
91
91
92
92
(define (destroy-measurement _ id)
93
93
(delete-nutrient-measurement! id)
94
Removed:
(redirect-to "/ferti/index"))
94
Added:
(redirect-to "/ferti/measurements-and-rotations"))
95
95
96
Removed:
;; Nutrient targets
96
Added:
;; Crop rotations
97
97
98
Removed:
(define (new-target _)
99
Removed:
(render-page (new-target-page)))
98
Added:
(define (new-rotation _)
99
Added:
(render-page (new-rotation-page)))
100
100
101
Removed:
(define (create-target req)
102
Removed:
(define-values (target-date nutrient-values) (formlet-process (targets-formlet) req))
103
Removed:
(create-nutrient-target! target-date nutrient-values)
104
Removed:
(redirect-to "/ferti/targets"))
101
Added:
(define (new-rotation-for-date _ date-string)
102
Added:
(render-page (new-rotation-page #:date date-string)))
105
103
106
Removed:
(define (show-target _ id)
107
Removed:
(define nt (get-nutrient-target #:id id))
108
Removed:
(render-page (show-target-page nt)))
104
Added:
(define (create-rotation req)
105
Added:
(define-values (rotation-date req-proportions) (formlet-process (rotation-formlet) req))
106
Added:
(create-crop-rotation! rotation-date req-proportions)
107
Added:
(redirect-to "/ferti/measurements-and-rotations"))
109
108
110
Removed:
(define (destroy-target _ id)
111
Removed:
(delete-nutrient-target! id)
112
Removed:
(redirect-to "/ferti/targets"))
109
Added:
(define (show-rotation _ id)
110
Added:
(define cr (get-crop-rotation #:id id))
111
Added:
(render-page (show-rotation-page cr)))
112
Added:
113
Added:
(define (destroy-rotation _ id)
114
Added:
(delete-crop-rotation! id)
115
Added:
(redirect-to "/ferti/measurements-and-rotations"))
113
116
114
117
;; Fertilizer products
115
118