yenu/src/clj/yenu/handler.clj

41 lines
1.3 KiB
Clojure

(ns yenu.handler
(:require [compojure.core :refer [routes wrap-routes]]
[yenu.layout :refer [error-page]]
[yenu.routes.auth :refer [auth-routes]]
[yenu.routes.core :refer [core-routes]]
[yenu.routes.admin :refer [admin-routes]]
[compojure.route :as route]
[yenu.env :refer [defaults]]
[mount.core :as mount]
[yenu.middleware :as middleware]))
(mount/defstate init-app
:start ((or (:init defaults) identity))
:stop ((or (:stop defaults) identity)))
(def app-routes
(routes
(-> #'auth-routes
(wrap-routes middleware/wrap-csrf)
(wrap-routes middleware/wrap-identity)
(wrap-routes middleware/wrap-formats))
(-> #'core-routes
(wrap-routes middleware/wrap-csrf)
(wrap-routes middleware/wrap-formats)
(wrap-routes middleware/wrap-identity)
(wrap-routes middleware/wrap-auth)
)
(-> #'admin-routes
(wrap-routes middleware/wrap-csrf)
(wrap-routes middleware/wrap-formats)
(wrap-routes middleware/wrap-identity)
(wrap-routes middleware/wrap-auth)
)
(route/not-found
(:body
(error-page {:status 404
:title "page not found"})))))
(defn app [] (middleware/wrap-base #'app-routes))