Router is injected into request in the default branch

* releated to #159
This commit is contained in:
Tommi Reiman 2018-10-28 18:20:35 +02:00
parent 24d39cde28
commit 0095aece21
5 changed files with 43 additions and 4 deletions

View file

@ -1,3 +1,13 @@
## UNRELEASED
## `reitit-ring`
* router is injected into request also in the default branch
## `reitit-http`
* router is injected into request also in the default branch
## 0.2.4 (21.10.2018)
## `reitit-ring`

View file

@ -139,7 +139,7 @@
(impl/fast-assoc ::r/router router))]
(or (interceptor/execute executor interceptors request)
(interceptor/execute executor default-queue request)))
(interceptor/execute executor default-queue request)))
(interceptor/execute executor default-queue (impl/fast-assoc request ::r/router router))))
([request respond raise]
(let [default #(interceptor/execute executor default-queue % respond raise)]
(if-let [match (r/match-by-path router (:uri request))]
@ -158,7 +158,7 @@
(if interceptors
(interceptor/execute executor interceptors request respond' raise)
(default request)))
(default request)))
(default (impl/fast-assoc request ::r/router router))))
nil))
{::r/router router}))))

View file

@ -226,7 +226,7 @@
(impl/fast-assoc ::r/match match)
(impl/fast-assoc ::r/router router))]
(or (handler request) (default-handler request)))
(default-handler request)))
(default-handler (impl/fast-assoc request ::r/router router))))
([request respond raise]
(if-let [match (r/match-by-path router (:uri request))]
(let [method (:request-method request)
@ -238,7 +238,7 @@
(impl/fast-assoc ::r/match match)
(impl/fast-assoc ::r/router router))]
((routes handler default-handler) request respond raise))
(default-handler request respond raise))
(default-handler (impl/fast-assoc request ::r/router router) respond raise))
nil)))
{::r/router router}))))

View file

@ -487,3 +487,20 @@
(is (= {:enter {:top 1, :api 1, :ping 1, :get 1}
:leave {:get 1, :ping 1, :api 1, :top 1}}
@times))))
(deftest router-available-in-default-branch
(testing "1-arity"
((http/ring-handler
(http/router [])
(fn [{:keys [::r/router]}]
(is router))
{:executor sieppari/executor})
{}))
(testing "3-arity"
((http/ring-handler
(http/router [])
(fn [{:keys [::r/router]}]
(println "here...")
(is router))
{:executor sieppari/executor})
{} (promise) (promise))))

View file

@ -487,3 +487,15 @@
(is (= "text/xml" (get-in @result [:headers "Content-Type"])))
(is (get-in @result [:headers "Last-Modified"]))
(is (= "<xml><hello>file</hello></xml>\n" (slurp (:body @result)))))))))))))
(deftest router-available-in-default-branch
(testing "1-arity"
((ring/ring-handler
(ring/router [])
(fn [{:keys [::r/router]}]
(is router))) {}))
(testing "3-arity"
((ring/ring-handler
(ring/router [])
(fn [{:keys [::r/router]} _ _]
(is router))) {} (promise) (promise))))