From f694ca675b2901b9d44c4361e234cdec90c7f63c Mon Sep 17 00:00:00 2001 From: gered Date: Sun, 30 Jan 2022 11:26:08 -0500 Subject: [PATCH] reorganize to more closely match my other templates i just like this other layout better --- project.clj | 2 +- .../simple_web_service/src/root_ns/core.clj | 95 ++++++++++--------- 2 files changed, 53 insertions(+), 44 deletions(-) diff --git a/project.clj b/project.clj index 63a5188..037630f 100644 --- a/project.clj +++ b/project.clj @@ -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" diff --git a/resources/leiningen/new/simple_web_service/src/root_ns/core.clj b/resources/leiningen/new/simple_web_service/src/root_ns/core.clj index e2a7973..9ea3699 100644 --- a/resources/leiningen/new/simple_web_service/src/root_ns/core.clj +++ b/resources/leiningen/new/simple_web_service/src/root_ns/core.clj @@ -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 ...")