You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.1 KiB
Clojure
36 lines
1.1 KiB
Clojure
(ns masto-embed.handler
|
|
(:require
|
|
[masto-embed.middleware :as middleware]
|
|
[masto-embed.layout :refer [error-page]]
|
|
[masto-embed.routes.home :refer [home-routes]]
|
|
[reitit.ring :as ring]
|
|
[ring.middleware.content-type :refer [wrap-content-type]]
|
|
[ring.middleware.webjars :refer [wrap-webjars]]
|
|
[masto-embed.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))
|