49 lines
1.6 KiB
Clojure
49 lines
1.6 KiB
Clojure
|
(ns mailhead.handler
|
||
|
(:require [compojure.core :refer [defroutes routes wrap-routes]]
|
||
|
[mailhead.layout :refer [error-page]]
|
||
|
[mailhead.routes.home :refer [home-routes]]
|
||
|
[mailhead.middleware :as middleware]
|
||
|
[compojure.route :as route]
|
||
|
[taoensso.timbre :as timbre]
|
||
|
[taoensso.timbre.appenders.3rd-party.rotor :as rotor]
|
||
|
[selmer.parser :as parser]
|
||
|
[environ.core :refer [env]]
|
||
|
[mailhead.config :refer [defaults]]
|
||
|
[mount.core :as mount]))
|
||
|
|
||
|
(defn init
|
||
|
"init will be called once when
|
||
|
app is deployed as a servlet on
|
||
|
an app server such as Tomcat
|
||
|
put any initialization code here"
|
||
|
[]
|
||
|
|
||
|
(timbre/merge-config!
|
||
|
{:level ((fnil keyword :info) (env :log-level))
|
||
|
:appenders {:rotor (rotor/rotor-appender
|
||
|
{:path (or (env :log-path) "mailhead.log")
|
||
|
:max-size (* 512 1024)
|
||
|
:backlog 10})}})
|
||
|
(doseq [component (:started (mount/start))]
|
||
|
(timbre/info component "started"))
|
||
|
((:init defaults)))
|
||
|
|
||
|
(defn destroy
|
||
|
"destroy will be called when your application
|
||
|
shuts down, put any clean up code here"
|
||
|
[]
|
||
|
(timbre/info "mailhead is shutting down...")
|
||
|
(doseq [component (:stopped (mount/stop))]
|
||
|
(timbre/info component "stopped"))
|
||
|
(timbre/info "shutdown complete!"))
|
||
|
|
||
|
(def app-routes
|
||
|
(routes
|
||
|
(wrap-routes #'home-routes middleware/wrap-csrf)
|
||
|
(route/not-found
|
||
|
(:body
|
||
|
(error-page {:status 404
|
||
|
:title "page not found"})))))
|
||
|
|
||
|
(def app (middleware/wrap-base #'app-routes))
|