Dropdown works well
This commit is contained in:
@@ -359,18 +359,39 @@
|
||||
(mt2/transformer {:encoders e
|
||||
:decoders e})))
|
||||
|
||||
(def unspecified-transformer
|
||||
(mt2/transformer
|
||||
{:decoders {:map {:compile (fn [x g]
|
||||
(fn [value]
|
||||
(let [specified-keys (set (keys value))]
|
||||
(reduce
|
||||
(fn [value [k params]]
|
||||
(cond (and (:unspecified/fn params)
|
||||
(not (get specified-keys k)))
|
||||
(assoc value k ((:unspecified/fn params)))
|
||||
(and (:unspecified/value params)
|
||||
(not (get specified-keys k)))
|
||||
(assoc value k (:unspecified/value params))
|
||||
:else
|
||||
value
|
||||
))
|
||||
value
|
||||
(m/children x)))))}}}))
|
||||
|
||||
(def main-transformer
|
||||
(mt2/transformer
|
||||
parse-empty-as-nil
|
||||
date-transformer
|
||||
(mt2/key-transformer {:encode keyword->str :decode str->keyword})
|
||||
mt2/string-transformer
|
||||
mt2/json-transformer
|
||||
parse-empty-as-nil
|
||||
unspecified-transformer
|
||||
(mt2/transformer {:name :arbitrary})
|
||||
coerce-vector
|
||||
date-range-transformer
|
||||
pull-transformer
|
||||
mt2/default-value-transformer))
|
||||
mt2/default-value-transformer
|
||||
))
|
||||
|
||||
(defn strip [s]
|
||||
(cond (and (string? s) (str/blank? s))
|
||||
@@ -439,9 +460,9 @@
|
||||
(and query-schema query-params)
|
||||
(assoc :query-params
|
||||
(mc/coerce
|
||||
query-schema
|
||||
query-params
|
||||
main-transformer)))
|
||||
query-schema
|
||||
query-params
|
||||
main-transformer)))
|
||||
|
||||
(catch Exception e
|
||||
(alog/warn ::validation-error :error e)
|
||||
@@ -638,4 +659,4 @@
|
||||
|
||||
(defn wrap-implied-route-param [handler & {:as route-params}]
|
||||
(fn [request]
|
||||
(handler (update-in request [:route-params] merge route-params))))
|
||||
(handler (update-in request [:route-params] merge route-params))))
|
||||
|
||||
Reference in New Issue
Block a user