diff --git a/src/circleci/rollcage/ring_middleware.clj b/src/circleci/rollcage/ring_middleware.clj index 2e19bdf..f750dd7 100644 --- a/src/circleci/rollcage/ring_middleware.clj +++ b/src/circleci/rollcage/ring_middleware.clj @@ -1,6 +1,10 @@ (ns circleci.rollcage.ring-middleware (:require [circleci.rollcage.core :as rollcage])) +(def ^:const request-and-wrap-parameter-keys + "selector for keys provided by ring's request map and by ring's wrap-parameter middleware" + [:http-method :query-string :query-params :form-params :params]) + (defn wrap-rollbar [handler rollcage-client] (if-not rollcage-client handler @@ -8,5 +12,6 @@ (try (handler req) (catch Exception e - (rollcage/error rollcage-client e (select-keys req [:uri])) + (rollcage/error rollcage-client e {:url (:uri req) + :params (select-keys req request-and-wrap-parameter-keys)}) (throw e)))))) diff --git a/test/circleci/rollcage/test_ring_middleware.clj b/test/circleci/rollcage/test_ring_middleware.clj index 5c286c9..716a835 100644 --- a/test/circleci/rollcage/test_ring_middleware.clj +++ b/test/circleci/rollcage/test_ring_middleware.clj @@ -9,7 +9,9 @@ dummy-ring-handler (fn [_] (throw error) {:status 200}) - dummy-request {:uri "/" :params {}}] + dummy-request {:http-method :get + :uri "/search" + :query-string "q=clojure"}] (testing "Reports rollbars when rollcage-client is truthy" (let [dummy-rollcage-client {} wrapped-handler (middleware/wrap-rollbar dummy-ring-handler @@ -20,7 +22,8 @@ (catch Exception e e))] (is (= result error)) - (is (= [[dummy-rollcage-client error {:uri "/"}]] + (is (= [[dummy-rollcage-client error {:url "/search" :params {:http-method :get + :query-string "q=clojure"}}]] (->> rollcage/error bond/calls (map :args))))))))