From 57bcf2ab44059ac767fc06633a6f44f418f0b70f Mon Sep 17 00:00:00 2001 From: Tommi Reiman Date: Fri, 7 Sep 2018 23:07:55 +0300 Subject: [PATCH] parameters-middleware & interceptor --- .../src/reitit/http/interceptors/parameters.clj | 16 ++++++++++++++++ .../src/reitit/ring/middleware/parameters.clj | 15 +++++++++++++++ .../reitit/http/interceptors/parameters_test.clj | 3 +++ .../reitit/ring/middleware/parameters_test.clj | 3 +++ 4 files changed, 37 insertions(+) create mode 100644 modules/reitit-interceptors/src/reitit/http/interceptors/parameters.clj create mode 100644 modules/reitit-middleware/src/reitit/ring/middleware/parameters.clj create mode 100644 test/clj/reitit/http/interceptors/parameters_test.clj create mode 100644 test/clj/reitit/ring/middleware/parameters_test.clj 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