reorganize to more closely match my other templates

i just like this other layout better
This commit is contained in:
Gered 2022-01-30 11:26:08 -05:00
parent 32cbb2f34f
commit f694ca675b
2 changed files with 53 additions and 44 deletions

View file

@ -1,4 +1,4 @@
(defproject net.gered/lein-template.simple-web-service "0.3.0-SNAPSHOT"
(defproject net.gered/lein-template.simple-web-service "0.2.3-SNAPSHOT"
:description "Simple Clojure web service project template."
:url "https://github.com/gered/simple-web-service-template"
:license {:name "MIT License"

View file

@ -22,10 +22,55 @@
[ring.util.http-response :refer :all]
[schema.core :as s]))
(declare config)
(declare handler)
;;
;; TODO: other app stuff goes here ...
;; infrastructure components
;;
(defstate ^{:on-reload :noop} config
:start
(do
(log/info "Loading config.edn")
(load-config :file "config.edn")))
(defstate ^{:on-reload :noop} repl-server
:start
(let [{:keys [port bind]
:or {port 7000
bind "127.0.0.1"}} (:nrepl config)
server (nrepl/start-server :port port :bind bind)]
(log/info (format "Starting nREPL server listening on %s:%d" bind port))
server)
:stop
(when repl-server
(log/info "Stopping nREPL server")
(nrepl/stop-server repl-server)))
(defstate ^{:on-reload :noop} http-server
:start
(let [{:keys [port bind]
:or {port 8080
bind "0.0.0.0"}} (:http config)
server (http-kit/run-server
(as-> #'handler h
(if (:dev? config) (wrap-reload h) h))
{:port port
:ip bind
:server-header nil
:legacy-return-value? false})]
(log/info (format "Started HTTP server listening on %s:%d" bind port))
server)
:stop
(when http-server
(log/info "Stopping HTTP server")
(http-kit/server-stop! http-server)
nil))
;;
;; web middleware
;;
; example exception handler that logs all unhandled exceptions thrown by your routes
@ -48,6 +93,11 @@
(handler request)
(unauthorized "unauthorized!")))))
;;
;; main web handler
;;
(defstate handler
:start
(ring/ring-handler
@ -143,47 +193,6 @@
;;
(defstate ^{:on-reload :noop} config
:start
(do
(log/info "Loading config.edn")
(load-config :file "config.edn")))
(defstate ^{:on-reload :noop} repl-server
:start
(let [{:keys [port bind]
:or {port 7000
bind "127.0.0.1"}} (:nrepl config)
server (nrepl/start-server :port port :bind bind)]
(log/info (format "Starting nREPL server listening on %s:%d" bind port))
server)
:stop
(when repl-server
(log/info "Stopping nREPL server")
(nrepl/stop-server repl-server)))
(defstate ^{:on-reload :noop} http-server
:start
(let [{:keys [port bind]
:or {port 8080
bind "0.0.0.0"}} (:http config)
server (http-kit/run-server
(as-> #'handler h
(if (:dev? config) (wrap-reload h) h))
{:port port
:ip bind
:server-header nil
:legacy-return-value? false})]
(log/info (format "Started HTTP server listening on %s:%d" bind port))
server)
:stop
(when http-server
(log/info "Stopping HTTP server")
(http-kit/server-stop! http-server)
nil))
;;
(defn -main
[& args]
(log/info "<%name%> is starting up ...")