From 399f1f5823b6302f247f1756853ea334bb8d9d1e Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Mon, 15 Jan 2018 14:25:29 -0500 Subject: [PATCH] Create wrap-edn-body middeleware function. --- src/ring/middleware/edn.clj | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/ring/middleware/edn.clj b/src/ring/middleware/edn.clj index 1b19f3a..cffe842 100644 --- a/src/ring/middleware/edn.clj +++ b/src/ring/middleware/edn.clj @@ -45,3 +45,13 @@ :params (merge (:params req) edn-params))] (handler req*)) (handler req))))) + +(defn wrap-edn-body + "If the request has the edn content-type, reads the body and assocs it into the + request under :body." + ([handler] (wrap-edn-body handler {})) + ([handler opts] + (fn [req] + (if-let [body (and (edn-request? req) (:body req))] + (handler (assoc req :body (binding [*read-eval* false] (-read-edn body opts)))) + (handler req)))))