Add 0-ary version

This commit is contained in:
Unknown 2018-10-30 23:48:12 +09:00
parent ad8384022c
commit b6e8a9d579

View file

@ -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,