diff --git a/src/clj/pmagnus/btcdata/web/middleware/core.clj b/src/clj/pmagnus/btcdata/web/middleware/core.clj index dbde6bb..545eb02 100644 --- a/src/clj/pmagnus/btcdata/web/middleware/core.clj +++ b/src/clj/pmagnus/btcdata/web/middleware/core.clj @@ -16,6 +16,14 @@ (update resp :headers assoc "Access-Control-Allow-Origin" origin))))) +(defn- wrap-nil-guard + "Discard responses with no :status — these are artifacts of ring-defaults + middleware wrapping a nil response (e.g., from a raw WebSocket upgrade)." + [handler] + (fn [request] + (let [resp (handler request)] + (when (:status resp) resp)))) + (defn wrap-base [{:keys [site-defaults-config cors-origin]}] (let [origin (or cors-origin (System/getenv "CORS_ORIGIN") @@ -24,4 +32,5 @@ (-> handler (defaults/wrap-defaults (or site-defaults-config defaults/api-defaults)) + (wrap-nil-guard) (wrap-cors origin)))))