(local lib (require :lib)) (local shop (require :shop)) (fn render [request db authenticated?] (if (and (= request.method "POST") authenticated?) (let [vals (lib.parse-values request.body)] (if (and vals vals.id vals.state (or (= vals.state "done") (= vals.state "canceled"))) (do (if (= "done" vals.state) (shop.finish-order db vals.id) (shop.cancel-order db vals.id)) (values 302 {:Location "/shop/order/list"} "")) (values 400 {} "bad body"))) (values 404 {} "not found"))) {: render}