various cleanups to the ring-handler, leiningen things, etc
This commit is contained in:
parent
295ea2e61a
commit
c557f281f4
|
@ -1,5 +1,5 @@
|
|||
(ns user
|
||||
(:use [blarg.repl]))
|
||||
(:use main))
|
||||
|
||||
(start-server)
|
||||
|
||||
|
|
|
@ -17,10 +17,10 @@
|
|||
[org.clojure/math.numeric-tower "0.0.4"]
|
||||
[clj-rss "0.1.3"]
|
||||
[clj-metasearch "0.1.1"]]
|
||||
:repl-options {:init-ns blarg.repl}
|
||||
:main main
|
||||
:plugins [[lein-ring "0.8.10"]
|
||||
[lein-environ "0.4.0"]]
|
||||
:ring {:handler blarg.handler/app
|
||||
:ring {:handler blarg.handler/handle-app
|
||||
:init blarg.handler/init
|
||||
:destroy blarg.handler/destroy}
|
||||
:profiles
|
||||
|
@ -29,8 +29,8 @@
|
|||
:stacktraces? false
|
||||
:auto-reload? false}
|
||||
:resource-paths ["env-resources/prod"]}
|
||||
:repl {:source-paths ["dev"]}
|
||||
:dev {:dependencies [[ring-mock "0.1.5"]
|
||||
[ring/ring-devel "1.2.1"]]
|
||||
:source-paths ["dev"]
|
||||
:resource-paths ["env-resources/dev"]}}
|
||||
:min-lein-version "2.0.0")
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
[clj-jtwig.core :as jtwig]
|
||||
[clj-jtwig.web.middleware :refer [wrap-servlet-context-path]]
|
||||
[blarg.config :refer [config-val]]
|
||||
[blarg.middleware :refer [wrap-exceptions]]
|
||||
[blarg.views.layout :as layout]
|
||||
[blarg.models.db :as db]
|
||||
[blarg.routes.accessrules :refer [auth-required]]
|
||||
|
@ -18,39 +19,31 @@
|
|||
(route/resources "/")
|
||||
(layout/render-handler "notfound.html" :status 404))
|
||||
|
||||
(defonce ring-app (atom nil))
|
||||
|
||||
(defn handle-app [request]
|
||||
(@ring-app request))
|
||||
|
||||
(defn init []
|
||||
(set-config! [:shared-appender-config :spit-filename] "blarg.log")
|
||||
(set-config! [:appenders :spit :enabled?] true)
|
||||
(set-config! [:fmt-output-fn] log-formatter)
|
||||
|
||||
(log :info "blarg started successfully")
|
||||
(log :info "Starting up ...")
|
||||
|
||||
(reset! ring-app
|
||||
(app-handler
|
||||
(find-routes "blarg.routes." app-routes)
|
||||
:middleware [wrap-exceptions wrap-servlet-context-path]
|
||||
:access-rules [{:redirect "/unauthorized" :rule auth-required}]
|
||||
:formats [:json-kw :edn]))
|
||||
|
||||
(when (= "DEV" (config-val :env))
|
||||
(log :info "Dev environment. Template caching disabled.")
|
||||
(jtwig/toggle-compiled-template-caching! false))
|
||||
|
||||
(log :info "touching database...")
|
||||
(log :info "Touching database...")
|
||||
(db/touch-databases))
|
||||
|
||||
(defn destroy []
|
||||
(log :info "blarg is shutting down..."))
|
||||
|
||||
(defn wrap-exceptions [handler]
|
||||
(fn [request]
|
||||
(try
|
||||
(handler request)
|
||||
(catch Throwable e
|
||||
(log :error e "Unhandled exception.")
|
||||
(layout/render-response
|
||||
request
|
||||
"error.html"
|
||||
:params {:errorInfo e}
|
||||
:status 500)))))
|
||||
|
||||
(def routes (find-routes "blarg.routes." app-routes))
|
||||
|
||||
(def app (app-handler
|
||||
routes
|
||||
:middleware [wrap-exceptions wrap-servlet-context-path]
|
||||
:access-rules [{:redirect "/unauthorized" :rule auth-required}]
|
||||
:formats [:json-kw :edn]))
|
||||
(log :info "Shutting down ..."))
|
||||
|
|
15
src/blarg/middleware.clj
Normal file
15
src/blarg/middleware.clj
Normal file
|
@ -0,0 +1,15 @@
|
|||
(ns blarg.middleware
|
||||
(:require [taoensso.timbre :refer [log]]
|
||||
[blarg.views.layout :as layout]))
|
||||
|
||||
(defn wrap-exceptions [handler]
|
||||
(fn [request]
|
||||
(try
|
||||
(handler request)
|
||||
(catch Throwable e
|
||||
(log :error e "Unhandled exception.")
|
||||
(layout/render-response
|
||||
request
|
||||
"error.html"
|
||||
:params {:errorInfo e}
|
||||
:status 500)))))
|
|
@ -1,12 +1,14 @@
|
|||
(ns blarg.repl
|
||||
(:use blarg.handler
|
||||
ring.server.standalone
|
||||
[ring.middleware file-info file]))
|
||||
(ns main
|
||||
(:require [ring.middleware.file :refer [wrap-file]]
|
||||
[ring.middleware.file-info :refer [wrap-file-info]]
|
||||
[ring.server.standalone :refer [serve]]
|
||||
[blarg.handler :refer [handle-app init destroy]])
|
||||
(:gen-class))
|
||||
|
||||
(defonce server (atom nil))
|
||||
|
||||
(defn get-handler []
|
||||
(-> #'app
|
||||
(-> #'handle-app
|
||||
(wrap-file "resources")
|
||||
(wrap-file-info)))
|
||||
|
||||
|
@ -24,3 +26,6 @@
|
|||
(defn stop-server []
|
||||
(.stop @server)
|
||||
(reset! server nil))
|
||||
|
||||
(defn -main [& args]
|
||||
(start-server))
|
Reference in a new issue