mirror of
https://github.com/metosin/reitit.git
synced 2026-02-04 11:23:14 +00:00
Add 0-ary version
This commit is contained in:
parent
ad8384022c
commit
b6e8a9d579
1 changed files with 20 additions and 19 deletions
|
|
@ -120,25 +120,26 @@
|
||||||
| | :strip - redirects slashed to slash-less |
|
| | :strip - redirects slashed to slash-less |
|
||||||
| | :both - works both ways (default) |
|
| | :both - works both ways (default) |
|
||||||
"
|
"
|
||||||
[{:keys [method] :or {method :both}}]
|
([] (redirect-trailing-slash-handler {:method :both}))
|
||||||
(let [redirect-handler (fn redirect-handler [request]
|
([{:keys [method]}]
|
||||||
(let [uri (:uri request)
|
(let [redirect-handler (fn redirect-handler [request]
|
||||||
status (if (= (:request-method request) :get) 301 308)
|
(let [uri (:uri request)
|
||||||
maybe-redirect (fn maybe-redirect [path]
|
status (if (= (:request-method request) :get) 301 308)
|
||||||
(if (r/match-by-path (::r/router request) path)
|
maybe-redirect (fn maybe-redirect [path]
|
||||||
{:status status
|
(if (r/match-by-path (::r/router request) path)
|
||||||
:headers {"Location" path}
|
{:status status
|
||||||
:body ""}))]
|
:headers {"Location" path}
|
||||||
(if (str/ends-with? uri "/")
|
:body ""}))]
|
||||||
(if (not= method :add)
|
(if (str/ends-with? uri "/")
|
||||||
(maybe-redirect (subs uri 0 (-> uri count dec))))
|
(if (not= method :add)
|
||||||
(if (not= method :strip)
|
(maybe-redirect (subs uri 0 (-> uri count dec))))
|
||||||
(maybe-redirect (str uri "/"))))))]
|
(if (not= method :strip)
|
||||||
(fn
|
(maybe-redirect (str uri "/"))))))]
|
||||||
([request]
|
(fn
|
||||||
(redirect-handler request))
|
([request]
|
||||||
([request respond _]
|
(redirect-handler request))
|
||||||
(respond (redirect-handler request))))))
|
([request respond _]
|
||||||
|
(respond (redirect-handler request)))))))
|
||||||
|
|
||||||
(defn create-default-handler
|
(defn create-default-handler
|
||||||
"A default ring handler that can handle the following cases,
|
"A default ring handler that can handle the following cases,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue