From 3008eb25f79ef1ed54fcc2b3f5b6635b34394680 Mon Sep 17 00:00:00 2001 From: Marius Peter Date: Sun, 19 Oct 2025 21:15:18 +0200 Subject: Absorb existing domain data. --- handlers.rkt | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 handlers.rkt (limited to 'handlers.rkt') diff --git a/handlers.rkt b/handlers.rkt new file mode 100644 index 0000000..42e4a76 --- /dev/null +++ b/handlers.rkt @@ -0,0 +1,48 @@ +#lang racket + +(provide app-dispatch) + +(require web-server/dispatch + web-server/http + web-server/formlets + "views.rkt" + "formlets.rkt" + "models/nutrient.rkt" + "models/nutrient-measurement.rkt") + + +(define (index _) + (define measurements (get-nutrient-measurements)) + (response/xexpr + #:preamble #"" + (index-page measurements))) + +(define (new-measurement _) + (response/xexpr + #:preamble #"" + (new-measurement-page))) + +(define (create-measurement req) + (define-values (measured-on measurements) + (formlet-process (measurements-formlet) req)) + (create-nutrient-measurement! measured-on measurements) + (redirect-to "/")) + +(define (destroy-measurement req) + (define-values (measured-on measurements) + (formlet-process (measurements-formlet) req)) + (create-nutrient-measurement! measured-on measurements) + (redirect-to "/")) + +(define (fallback req) + (response/xexpr + #:preamble #"" + (fallback-page 404))) + +(define-values (app-dispatch app-url) + (dispatch-rules + [("measurement" "new") #:method "get" new-measurement] + [("measurement" "create") #:method "post" create-measurement] + [("measurement" "destroy") #:method "post" destroy-measurement] + [("") #:method "get" index] + [else fallback])) -- cgit v1.2.3