macchiato.middleware.nested-params

assoc-conj

(assoc-conj map key val)
Associate a key with a value in a map. If the key already exists in the map,
a vector of values is associated with the key.

nested-params-request

(nested-params-request request)(nested-params-request request options)
Converts a request with a flat map of parameters to a nested map.
See: wrap-nested-params.

parse-nested-keys

(parse-nested-keys param-name)
Parse a parameter name into a list of keys using a 'C'-like index
notation.
For example:
  "foo[bar][][baz]"
  => ["foo" "bar" "" "baz"]

wrap-nested-params

(wrap-nested-params handler)(wrap-nested-params handler options)
Middleware to converts a flat map of parameters into a nested map.
Accepts the following options:
:key-parser - the function to use to parse the parameter names into a list
              of keys. Keys that are empty strings are treated as elements in
              a vector, non-empty keys are treated as elements in a map.
              Defaults to the parse-nested-keys function.
For example:
  {"foo[bar]" "baz"}
  => {"foo" {"bar" "baz"}}
  {"foo[]" "bar"}
  => {"foo" ["bar"]}