Как перенаправить методы get с помощью Liberator в Clojure?

У меня есть конечная точка называется /account который предоставляет информацию о пользователе (возвращает HTML).

Когда неавторизованный пользователь пытается получить доступ к этой конечной точке, я должен иметь возможность перенаправить на login page но в Освободителе я нашел post-redirect до сих пор, и это только для post methods,

Мне нужно перенаправить get methods а как мне этого добиться?

1 ответ

Решение

Я нашел обходной путь, следующий код делает свое дело:

(defn account
  []
  (resource :allowed-methods [:get]

            :available-media-types ["text/html"]

            :exists? (fn [_] false)

            :existed? (fn [_] true)

            :moved-temporarily? (fn [ctx] {:location "/redirected-path-or-url"})

            :handle-ok (fn [ctx]
                         [:html ...])

            :handle-exception (fn [_]
                                "Something went wrong")))

Или вы можете проверить :authorized? и верните логин html из :handle-unauthorized но я сомневаюсь, что это хорошая практика или нет.

Другие вопросы по тегам