diff --git a/modules/reitit-spec/src/reitit/coercion/spec.cljc b/modules/reitit-spec/src/reitit/coercion/spec.cljc index 31050a01..d453dd61 100644 --- a/modules/reitit-spec/src/reitit/coercion/spec.cljc +++ b/modules/reitit-spec/src/reitit/coercion/spec.cljc @@ -107,40 +107,39 @@ (if (:schema $) (update $ :schema #(coercion/-compile-model this % nil)) $))]))}))) - :openapi (openapi/openapi-spec - (merge - (when (seq (dissoc parameters :body :request)) - {::openapi/parameters - (into (empty parameters) - (for [[k v] (dissoc parameters :body :request)] - [k (coercion/-compile-model this v nil)]))}) - (when (:body parameters) - {:requestBody (openapi/openapi-spec - {::openapi/content (zipmap content-types (repeat (coercion/-compile-model this (:body parameters) nil)))})}) - (when (:request parameters) - {:requestBody (openapi/openapi-spec - {::openapi/content (merge - (when-let [default (get-in parameters [:request :body])] - (zipmap content-types (repeat (coercion/-compile-model this default nil)))) - (into {} - (for [[format model] (:content (:request parameters))] - [format (coercion/-compile-model this model nil)])))})}) - (when responses - {:responses - (into - (empty responses) - (for [[k {:keys [body content] :as response}] responses] - [k (merge - (select-keys response [:description]) - (when (or body content) - (openapi/openapi-spec - {::openapi/content (merge - (when body - (zipmap content-types (repeat (coercion/-compile-model this (:body response) nil)))) - (when response - (into {} - (for [[format model] (:content response)] - [format (coercion/-compile-model this model nil)]))))})))]))}))) + :openapi (merge + (when (seq (dissoc parameters :body :request)) + (openapi/openapi-spec {::openapi/parameters + (into (empty parameters) + (for [[k v] (dissoc parameters :body :request)] + [k (coercion/-compile-model this v nil)]))})) + (when (:body parameters) + {:requestBody (openapi/openapi-spec + {::openapi/content (zipmap content-types (repeat (coercion/-compile-model this (:body parameters) nil)))})}) + (when (:request parameters) + {:requestBody (openapi/openapi-spec + {::openapi/content (merge + (when-let [default (get-in parameters [:request :body])] + (zipmap content-types (repeat (coercion/-compile-model this default nil)))) + (into {} + (for [[format model] (:content (:request parameters))] + [format (coercion/-compile-model this model nil)])))})}) + (when responses + {:responses + (into + (empty responses) + (for [[k {:keys [body content] :as response}] responses] + [k (merge + (select-keys response [:description]) + (when (or body content) + (openapi/openapi-spec + {::openapi/content (merge + (when body + (zipmap content-types (repeat (coercion/-compile-model this (:body response) nil)))) + (when response + (into {} + (for [[format model] (:content response)] + [format (coercion/-compile-model this model nil)]))))})))]))})) (throw (ex-info (str "Can't produce Spec apidocs for " specification)