From 241c8367e368abc7078434f3b6a4a526fd8ce09d Mon Sep 17 00:00:00 2001 From: Joel Kaasinen Date: Wed, 30 Aug 2023 09:37:55 +0300 Subject: [PATCH] feat: dissoc definitions from swagger methods we only want the definitions on the very top level of the swagger doc --- .../reitit-swagger/src/reitit/swagger.cljc | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/modules/reitit-swagger/src/reitit/swagger.cljc b/modules/reitit-swagger/src/reitit/swagger.cljc index 496c0ada..3938eec9 100644 --- a/modules/reitit-swagger/src/reitit/swagger.cljc +++ b/modules/reitit-swagger/src/reitit/swagger.cljc @@ -127,16 +127,17 @@ [(swagger-path p (r/options router)) endpoint])) map-in-order #(->> % (apply concat) (apply array-map)) paths (->> router (r/compiled-routes) (filter accept-route) (map transform-path) map-in-order) - definitions (reduce-kv - (fn [ds _ v] - (let [ks (keys v)] - (merge ds (apply merge - (for [k ks] - (when-let [method-map (get v k)] - (:definitions method-map))))))) - {} paths)] + definitions (apply merge + (for [[_path path-data] paths + [_method data] path-data] + (:definitions data))) + paths-without-definitions (into {} + (for [[path path-data] paths] + [path (into {} + (for [[method data] path-data] + [method (dissoc data :definitions)]))]))] {:status 200 - :body (meta-merge swagger {:paths paths :definitions definitions})})) + :body (meta-merge swagger {:paths paths-without-definitions :definitions definitions})})) ([req res raise] (try (res (create-swagger req))