Fork me on GitHub
#reitit
<
2019-07-07
>
y.khmelevskii11:07:25

Hi! Can you please help me to understand how I can use io.pedestal.http.ring-middlewares/nested-params instead of reitit.http.interceptors.parameters/parameters-interceptor? Because I need to use something like the following query params ?status[foo]=red&status[bar]=green

y.khmelevskii12:07:46

I tried to rewrite this interceptor https://github.com/metosin/reitit/blob/master/modules/reitit-interceptors/src/reitit/http/interceptors/parameters.clj

(defn parameters-interceptor []
  {:name ::parameters
   :enter (fn [ctx]
            (let [request (:request ctx)]
              (assoc ctx :request (ring.middleware.nested-params/nested-params-request request))))})
and it works, but this interceptor create params request field instead of query-params field which reitit.http.coercion/coerce-request-interceptor uses

ikitommi15:07:24

@y.khmelevskii you can do (update request :query-params ring.middleware.nested-params/parse-nested-keys)

ikitommi15:07:17

the parameters-interceptor could have an option :nested for this?

ikitommi15:07:06

@kommen looks good to me, I think most of the core team are on vacation, but PR still most welcome!

y.khmelevskii21:07:44

@ikitommi yeah, it would be great to add this option