36 lines
1.1 KiB
Clojure
36 lines
1.1 KiB
Clojure
(ns shapey-shifty.handler
|
|
(:require
|
|
[shapey-shifty.middleware :as middleware]
|
|
[shapey-shifty.layout :refer [error-page]]
|
|
[shapey-shifty.routes.home :refer [home-routes]]
|
|
[reitit.ring :as ring]
|
|
[ring.middleware.content-type :refer [wrap-content-type]]
|
|
[ring.middleware.webjars :refer [wrap-webjars]]
|
|
[shapey-shifty.env :refer [defaults]]
|
|
[mount.core :as mount]))
|
|
|
|
(mount/defstate init-app
|
|
:start ((or (:init defaults) (fn [])))
|
|
:stop ((or (:stop defaults) (fn []))))
|
|
|
|
(mount/defstate app-routes
|
|
:start
|
|
(ring/ring-handler
|
|
(ring/router
|
|
[(home-routes)])
|
|
(ring/routes
|
|
(ring/create-resource-handler
|
|
{:path "/"})
|
|
(wrap-content-type
|
|
(wrap-webjars (constantly nil)))
|
|
(ring/create-default-handler
|
|
{:not-found
|
|
(constantly (error-page {:status 404, :title "404 - Page not found"}))
|
|
:method-not-allowed
|
|
(constantly (error-page {:status 405, :title "405 - Not allowed"}))
|
|
:not-acceptable
|
|
(constantly (error-page {:status 406, :title "406 - Not acceptable"}))}))))
|
|
|
|
(defn app []
|
|
(middleware/wrap-base #'app-routes))
|