interceptors, wip

This commit is contained in:
Tommi Reiman 2017-12-10 18:08:46 +02:00
parent 9f324606ff
commit 2092682d6a

View file

@ -116,21 +116,22 @@
:interceptors)) :interceptors))
{::router router})) {::router router}))
(defn execute [r {{:keys [uri]} :request :as ctx}] (comment
(if-let [interceptors (-> (r/match-by-path r uri) (defn execute [r {{:keys [uri]} :request :as ctx}]
:result (if-let [interceptors (-> (r/match-by-path r uri)
:interceptors)] :result
(as-> ctx $ :interceptors)]
(reduce #(%2 %1) $ (keep :enter interceptors)) (as-> ctx $
(reduce #(%2 %1) $ (keep :leave interceptors))))) (reduce #(%2 %1) $ (keep :enter interceptors))
(reduce #(%2 %1) $ (keep :leave interceptors)))))
(def r (def r
(router (router
["/api" {:interceptors [{:name ::add ["/api" {:interceptors [{:name ::add
:enter (fn [ctx] :enter (fn [ctx]
(assoc ctx :enter true)) (assoc ctx :enter true))
:leave (fn [ctx] :leave (fn [ctx]
(assoc ctx :leave true))}]} (assoc ctx :leave true))}]}
["/ping" (fn [ctx] (assoc ctx :response "ok"))]])) ["/ping" (fn [ctx] (assoc ctx :response "ok"))]]))
(execute r {:request {:uri "/api/ping"}}) (execute r {:request {:uri "/api/ping"}}))