Multipart-params revisited

This commit is contained in:
Tommi Reiman 2018-07-28 12:14:46 +03:00
parent 2ab54a1b99
commit 2c476177be

View file

@ -16,22 +16,23 @@
if endpoint has `[:parameters :multipart]` defined. Publishes coerced if endpoint has `[:parameters :multipart]` defined. Publishes coerced
parameters into `[:parameters :multipart]` under request." parameters into `[:parameters :multipart]` under request."
([] ([]
(create-multipart-middleware nil)) (create-multipart-middleware nil))
([options] ([options]
{:name ::multipart {:name ::multipart
:compile (fn [{:keys [parameters coercion]} opts] :compile (fn [{:keys [parameters coercion]} opts]
(if-let [multipart (:multipart parameters)] (if-let [multipart (:multipart parameters)]
(let [opts (assoc opts ::coercion/parameter-coercion parameter-coercion) (let [opts (assoc opts ::coercion/parameter-coercion parameter-coercion)
coercers (if multipart (coercion/request-coercers coercion parameters opts))] coercers (if multipart (coercion/request-coercers coercion parameters opts))]
(fn [handler] {:data {:swagger {:consumes #{"multipart/form-data"}}}
(fn :wrap (fn [handler]
([request] (fn
(-> request ([request]
(multipart-params/multipart-params-request options) (-> request
(coerced-request coercers) (multipart-params/multipart-params-request options)
(handler))) (coerced-request coercers)
([request respond raise] (handler)))
(-> request ([request respond raise]
(multipart-params/multipart-params-request options) (-> request
(coerced-request coercers) (multipart-params/multipart-params-request options)
(handler respond raise))))))))})) (coerced-request coercers)
(handler respond raise)))))})))}))