diff --git a/modules/reitit-interceptors/src/reitit/http/interceptors/parameters.clj b/modules/reitit-interceptors/src/reitit/http/interceptors/parameters.clj new file mode 100644 index 00000000..0a21ba20 --- /dev/null +++ b/modules/reitit-interceptors/src/reitit/http/interceptors/parameters.clj @@ -0,0 +1,16 @@ +(ns reitit.http.interceptors.parameters + (:require [ring.middleware.params :as params])) + +(defn parameters-interceptor + "Interceptor to parse urlencoded parameters from the query string and form + body (if the request is a url-encoded form). Adds the following keys to + the request map: + + :query-params - a map of parameters from the query string + :form-params - a map of parameters from the body + :params - a merged map of all types of parameter" + [] + {:name ::parameters + :enter (fn [ctx] + (let [request (:request ctx)] + (assoc ctx :request (params/params-request request))))}) diff --git a/modules/reitit-middleware/src/reitit/ring/middleware/parameters.clj b/modules/reitit-middleware/src/reitit/ring/middleware/parameters.clj new file mode 100644 index 00000000..84355093 --- /dev/null +++ b/modules/reitit-middleware/src/reitit/ring/middleware/parameters.clj @@ -0,0 +1,15 @@ +(ns reitit.ring.middleware.parameters + (:require [ring.middleware.params :as params])) + +(def parameters-middleware + "Middleware to parse urlencoded parameters from the query string and form + body (if the request is a url-encoded form). Adds the following keys to + the request map: + + :query-params - a map of parameters from the query string + :form-params - a map of parameters from the body + :params - a merged map of all types of parameter" + {:name ::parameters + :enter (fn [ctx] + (let [request (:request ctx)] + (assoc ctx :request (params/params-request request))))}) diff --git a/test/clj/reitit/http/interceptors/parameters_test.clj b/test/clj/reitit/http/interceptors/parameters_test.clj new file mode 100644 index 00000000..1a1a019a --- /dev/null +++ b/test/clj/reitit/http/interceptors/parameters_test.clj @@ -0,0 +1,3 @@ +(ns reitit.http.interceptors.parameters-test) + +;; TODO diff --git a/test/clj/reitit/ring/middleware/parameters_test.clj b/test/clj/reitit/ring/middleware/parameters_test.clj new file mode 100644 index 00000000..880a81d9 --- /dev/null +++ b/test/clj/reitit/ring/middleware/parameters_test.clj @@ -0,0 +1,3 @@ +(ns reitit.ring.middleware.parameters-test) + +;; TODO