:produces and :consumes can be overridden

This commit is contained in:
Tommi Reiman 2018-07-30 11:10:31 +03:00
parent 9330ee3bc5
commit 9fdb495ab2

View file

@ -6,13 +6,15 @@
(s/def ::muuntaja (partial instance? m/Muuntaja))
(s/def ::spec (s/keys :opt-un [::muuntaja]))
(defn- displace [x] (with-meta x {:displace true}))
(def format-middleware
{:name ::format
:spec ::spec
:compile (fn [{:keys [muuntaja]} _]
(if muuntaja
{:data {:swagger {:produces (m/encodes muuntaja)
:consumes (m/decodes muuntaja)}}
{:data {:swagger {:produces (displace (m/encodes muuntaja))
:consumes (displace (m/decodes muuntaja))}}
:wrap #(muuntaja.middleware/wrap-format % muuntaja)}))})
(def format-negotiate-middleware
@ -27,7 +29,7 @@
:spec ::spec
:compile (fn [{:keys [muuntaja]} _]
(if muuntaja
{:data {:swagger {:consumes (m/decodes muuntaja)}}
{:data {:swagger {:consumes (displace (m/decodes muuntaja))}}
:wrap #(muuntaja.middleware/wrap-format-request % muuntaja)}))})
(def format-response-middleware
@ -35,5 +37,5 @@
:spec ::spec
:compile (fn [{:keys [muuntaja]} _]
(if muuntaja
{:data {:swagger {:produces (m/encodes muuntaja)}}
{:data {:swagger {:produces (displace (m/encodes muuntaja))}}
:wrap #(muuntaja.middleware/wrap-format-response % muuntaja)}))})