|
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