|
8 | 8 | (let [params (codec/form-decode params encoding)] |
9 | 9 | (if (map? params) params {}))) |
10 | 10 |
|
| 11 | +(defn- assoc-param-map [req k v] |
| 12 | + (some-> req (assoc k (if-let [v' (req k)] |
| 13 | + (reduce-kv assoc v' v) |
| 14 | + v)))) |
| 15 | + |
11 | 16 | (defn assoc-query-params |
12 | 17 | "Parse and assoc parameters from the query string with the request." |
13 | 18 | {:added "1.3"} |
14 | 19 | [request encoding] |
15 | | - (merge-with merge request |
16 | | - (if-let [query-string (:query-string request)] |
17 | | - (let [params (parse-params query-string encoding)] |
18 | | - {:query-params params, :params params}) |
19 | | - {:query-params {}, :params {}}))) |
| 20 | + (let [params (if-let [query-string (:query-string request)] |
| 21 | + (parse-params query-string encoding) |
| 22 | + {})] |
| 23 | + (-> request |
| 24 | + (assoc-param-map :query-params params) |
| 25 | + (assoc-param-map :params params)))) |
20 | 26 |
|
21 | 27 | (defn assoc-form-params |
22 | 28 | "Parse and assoc parameters from the request body with the request." |
23 | 29 | {:added "1.2"} |
24 | 30 | [request encoding] |
25 | | - (merge-with merge request |
26 | | - (if-let [body (and (req/urlencoded-form? request) (:body request))] |
27 | | - (let [params (parse-params (slurp body :encoding encoding) encoding)] |
28 | | - {:form-params params, :params params}) |
29 | | - {:form-params {}, :params {}}))) |
| 31 | + (let [params (if-let [body (and (req/urlencoded-form? request) |
| 32 | + (:body request))] |
| 33 | + (parse-params (slurp body :encoding encoding) encoding) |
| 34 | + {})] |
| 35 | + (-> request |
| 36 | + (assoc-param-map :form-params params) |
| 37 | + (assoc-param-map :params params)))) |
30 | 38 |
|
31 | 39 | (defn params-request |
32 | 40 | "Adds parameters from the query string and the request body to the request |
|
0 commit comments