From 5c0cf19ef1f1524fd308d4bb86285ce16f9e9fd7 Mon Sep 17 00:00:00 2001 From: Tommi Reiman Date: Sun, 22 Jul 2018 14:40:54 +0300 Subject: [PATCH] Muuntaja is a def --- examples/ring-swagger/src/example/server.clj | 8 ++++--- .../src/reitit/ring/middleware/muuntaja.clj | 23 ++++++++----------- .../reitit/ring/middleware/muuntaja_test.clj | 6 +++-- 3 files changed, 18 insertions(+), 19 deletions(-) diff --git a/examples/ring-swagger/src/example/server.clj b/examples/ring-swagger/src/example/server.clj index 33223a64..16a1f036 100644 --- a/examples/ring-swagger/src/example/server.clj +++ b/examples/ring-swagger/src/example/server.clj @@ -10,7 +10,8 @@ [schema.core :refer [Int]] [ring.adapter.jetty :as jetty] - [ring.middleware.params])) + [ring.middleware.params] + [muuntaja.core :as m])) (def app (ring/ring-handler @@ -58,8 +59,9 @@ {:status 200 :body {:total (+ x y)}})}}]]] - {:data {:middleware [ring.middleware.params/wrap-params - (muuntaja/create-format-middleware) + {:data {:muuntaja m/instance + :middleware [ring.middleware.params/wrap-params + muuntaja/format-middleware swagger/swagger-feature rrc/coerce-exceptions-middleware rrc/coerce-request-middleware diff --git a/modules/reitit-middleware/src/reitit/ring/middleware/muuntaja.clj b/modules/reitit-middleware/src/reitit/ring/middleware/muuntaja.clj index 8027b35e..6192a4ef 100644 --- a/modules/reitit-middleware/src/reitit/ring/middleware/muuntaja.clj +++ b/modules/reitit-middleware/src/reitit/ring/middleware/muuntaja.clj @@ -5,17 +5,12 @@ (s/def ::muuntaja (partial instance? m/Muuntaja)) -(defn create-format-middleware - ([] - (create-format-middleware m/default-options)) - ([options] - {:name ::formats - :spec (s/keys :opt-un [::muuntaja]) - :compile (fn [{:keys [muuntaja]} _] - (let [options (or muuntaja options)] - (if options - (let [m (m/create options)] - {:data {:swagger {:produces (m/encodes m) - :consumes (m/decodes m)}} - :wrap (fn [handler] - (muuntaja.middleware/wrap-format handler m))}))))})) +(def format-middleware + {:name ::formats + :spec (s/keys :opt-un [::muuntaja]) + :compile (fn [{:keys [muuntaja]} _] + (if muuntaja + {:data {:swagger {:produces (m/encodes muuntaja) + :consumes (m/decodes muuntaja)}} + :wrap (fn [handler] + (muuntaja.middleware/wrap-format handler muuntaja))}))}) diff --git a/test/clj/reitit/ring/middleware/muuntaja_test.clj b/test/clj/reitit/ring/middleware/muuntaja_test.clj index b9b5b6b1..690f7a5c 100644 --- a/test/clj/reitit/ring/middleware/muuntaja_test.clj +++ b/test/clj/reitit/ring/middleware/muuntaja_test.clj @@ -10,7 +10,8 @@ app (ring/ring-handler (ring/router ["/ping" {:get (constantly {:status 200, :body data})}] - {:data {:middleware [(muuntaja/create-format-middleware)]}}))] + {:data {:muuntaja m/instance + :middleware [muuntaja/format-middleware]}}))] (is (= data (->> {:request-method :get, :uri "/ping"} (app) :body @@ -36,7 +37,8 @@ ["/swagger.json" {:get {:no-doc true :handler (swagger/create-swagger-handler)}}]] - {:data {:middleware [(muuntaja/create-format-middleware)]}})) + {:data {:muuntaja m/instance + :middleware [muuntaja/format-middleware]}})) spec (fn [path] (let [path (keyword path)] (-> {:request-method :get :uri "/swagger.json"}