Dropdown works well

This commit is contained in:
2024-10-18 21:00:50 -07:00
parent acaa2a7d1e
commit 2311acb9a2
6 changed files with 241 additions and 111 deletions

View File

@@ -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))))