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))
|