feat: change syntax for :request parameter coercion default schema

use :request :body instead of :request :content :default for symmetry
with :response
This commit is contained in:
Joel Kaasinen 2023-03-06 10:36:52 +02:00
parent 7842160656
commit c3a3ca9f95
2 changed files with 8 additions and 7 deletions

View file

@ -87,11 +87,12 @@
(if-let [{:keys [keywordize? open? in style]} (parameter-coercion type)]
(let [transform (comp (if keywordize? walk/keywordize-keys identity) in)
->open (if open? #(-open-model coercion %) identity)
format-coercer-pairs (if (= :request style)
(for [[format schema] (:content model)]
[format (-request-coercer coercion :body (->open schema))])
[[:default (-request-coercer coercion style (->open model))]])
format->coercer (some->> format-coercer-pairs
format-schema-pairs (if (= :request style)
(conj (:content model) [:default (:body model)])
[[:default model]])
format->coercer (some->> (for [[format schema] format-schema-pairs
:when schema]
[format (-request-coercer coercion (case style :request :body style) (->open schema))])
(filter second)
(seq)
(into {}))]

View file

@ -610,8 +610,8 @@
(let [app (ring/ring-handler
(ring/router
[["/foo" {:post {:parameters {:request {:content {"application/json" json-request
"application/edn" edn-request
:default default-request}}}
"application/edn" edn-request}
:body default-request}}
:responses {200 {:content {"application/json" json-response
"application/edn" edn-response}
:body default-response}}