diff --git a/src/adl_support/core.clj b/src/adl_support/core.clj index 609a659..4b0f8c2 100644 --- a/src/adl_support/core.clj +++ b/src/adl_support/core.clj @@ -49,14 +49,12 @@ (defn raw-massage-params "Sending empty strings, or numbers as strings, to the database often isn't helpful. Massage these `params` and `form-params` to eliminate these problems. - We must take key field values out of just params, but if form-params are present - we should take all other values out of form-params - because we need the key to - load the form in the first place. `form-params` always override `params`. - - **NOTE THAT** the parameter `key-fields` is deprecated and ignored." - ([params form-params key-fields] + Date and time fields also need massaging." + ([request entity] (let - [p (reduce + [params (:params request) + form-params (:form-params request) + p (reduce merge {} (map @@ -74,10 +72,8 @@ (map #(massage-value % form-params) (keys form-params)))))) - ([request key-fields] - (raw-massage-params (:params request) (:form-params request) key-fields)) ([request] - (raw-massage-params (:params request) (:form-params request) #{}))) + (raw-massage-params request nil))) (def massage-params diff --git a/src/adl_support/forms_support.clj b/src/adl_support/forms_support.clj index b7c2e3f..d51ffa7 100644 --- a/src/adl_support/forms_support.clj +++ b/src/adl_support/forms_support.clj @@ -1,5 +1,5 @@ (ns adl-support.forms-support - (:require [adl-support.core :refer [do-or-log-error do-or-return-reason]] + (:require [adl-support.core :refer :all] [adl-support.utils :refer [descendants-with-tag safe-name singularise]] [clojure.core.memoize :as memo] [clojure.data.json :as json] @@ -100,9 +100,10 @@ `params` to have a value for each field in these `fields`." [params fields] `(merge - (reduce {} (map #(hash-map (keyword %) nil) ~fields)) + (reduce merge {} (map #(hash-map (keyword %) nil) ~fields)) ~params)) + (defn property-defaults [entity] (reduce diff --git a/test/adl_support/core_test.clj b/test/adl_support/core_test.clj index d1b3087..0d72d0c 100644 --- a/test/adl_support/core_test.clj +++ b/test/adl_support/core_test.clj @@ -4,29 +4,14 @@ (deftest massage-params-tests (testing "Massaging of params" - (let [expected {:id 67} - actual (massage-params {:id 67} {} #{:id})] - (is (= expected actual) "numeric param")) - (let [expected {:id 67} - actual (massage-params {:id "67"} {} #{:id})] - (is (= expected actual) "string param")) - (let [expected {:id 67} - actual (massage-params {"id" "67"} {} #{:id})] - (is (= expected actual) "string keyword")) - (let [expected {:id 67} - actual (massage-params {:id 60} {:id 67} #{:id})] - (is (= expected actual) "params and form-params differ")) - (let [expected {:id 67 :offset 0 :limit 50} - actual (massage-params {:id 60} {:id "67" :offset "0" :limit "50"} #{:id})] - (is (= expected actual) "prefer values from form-params")) (let [expected {:id 67 :offset 0 :limit 50} actual (massage-params {:params {:id "67" :offset "0" :limit "50"} :form-params {}})] (is (= expected actual) "Request with no form params")) (let [expected {:id 67 :offset 0 :limit 50} actual (massage-params {:params {:id "0" :offset "1000" :limit "150"} :form-params {:id "67" :offset "0" :limit "50"}})] - (is (= expected actual) "Request with form params, params and form params differ")) - )) + (is (= expected actual) "Request with form params, params and form params differ")))) + (deftest compose-exception-reason-tests (testing "Compose exception reason"