diff --git a/modules/reitit-ring/src/reitit/ring.cljc b/modules/reitit-ring/src/reitit/ring.cljc index 40259ed2..878b7376 100644 --- a/modules/reitit-ring/src/reitit/ring.cljc +++ b/modules/reitit-ring/src/reitit/ring.cljc @@ -97,6 +97,23 @@ {:no-doc true :handler default-options-handler}) +(defn- comp-handlers + "Compose two ring handlers such that if the first has an empty response + the second will be invoked." + [handler1 handler2] + (let [single-arity (fn [request] + (or (handler1 request) (handler2 request))) + multi-arity (fn [request respond raise] + (handler1 request (fn [response] + (if response + (respond response) + (handler2 request respond raise))) raise))] + (fn + ([request] + (single-arity request)) + ([request respond raise] + (multi-arity request respond raise))))) + ;; ;; public api ;; @@ -133,25 +150,6 @@ " Use :reitit.ring/default-options-endpoint instead."))) (r/router data opts)))) -(defn- comp-handlers - "Compose two ring handlers such that if the first has an empty response - the second will be invoked." - ([handler] - handler) - ([handler1 handler2] - (let [single-arity (fn [request] - (or (handler1 request) (handler2 request))) - multi-arity (fn [request respond raise] - (handler1 request (fn [response] - (if response - (respond response) - (handler2 request respond raise))) raise))] - (fn - ([request] - (single-arity request)) - ([request respond raise] - (multi-arity request respond raise)))))) - (defn routes "Create a ring handler by combining several handlers into one." {:arglists '([& handlers])}