From 16bcc4de5df6410f81662e40565e428207404bd2 Mon Sep 17 00:00:00 2001 From: Bart Akeley Date: Mon, 30 Oct 2017 20:34:16 -0500 Subject: [PATCH] move app config to separate module with main --- Procfile | 2 +- project.clj | 27 ++++++++++---------- src/aretherecookies/app.clj | 15 +++++++++++ src/aretherecookies/handler.clj | 44 +++++++++++++++------------------ 4 files changed, 49 insertions(+), 39 deletions(-) create mode 100644 src/aretherecookies/app.clj diff --git a/Procfile b/Procfile index 8de59b9..4178669 100644 --- a/Procfile +++ b/Procfile @@ -1 +1 @@ -web: lein ring server-headless \ No newline at end of file +web: java $JVM_OPTS -cp target/aretherecookies.jar aretherecookies.app \ No newline at end of file diff --git a/project.clj b/project.clj index 814a1e9..669011d 100644 --- a/project.clj +++ b/project.clj @@ -2,21 +2,20 @@ :description "where cookies can be found" :url "http://www.aretherecookies.com" :min-lein-version "2.0.0" - :main aretherecookies.handler - :dependencies [ - [org.clojure/clojure "1.8.0"] - [environ "1.1.0"] - [compojure "1.5.1"] - [ring/ring-defaults "0.2.1"] - [org.clojure/java.jdbc "0.7.3"] - [org.postgresql/postgresql "42.1.4"] - [com.mchange/c3p0 "0.9.5.2"] - [ring-middleware-format "0.7.2"] - [org.clojure/data.json "0.2.6"] - [ring/ring-json "0.4.0"] - ] + :main aretherecookies.app + :dependencies [[org.clojure/clojure "1.8.0"] + [environ "1.1.0"] + [compojure "1.5.1"] + [ring/ring-defaults "0.2.1"] + [org.clojure/java.jdbc "0.7.3"] + [org.postgresql/postgresql "42.1.4"] + [com.mchange/c3p0 "0.9.5.2"] + [ring-middleware-format "0.7.2"] + [org.clojure/data.json "0.2.6"] + [ring/ring-json "0.4.0"] + [ring/ring-jetty-adapter "1.4.0"]] :plugins [[lein-ring "0.9.7"] [lein-environ "1.1.0"]] - :ring {:handler aretherecookies.handler/app} + :ring {:handler aretherecookies.app/app} :profiles {:dev {:dependencies [[javax.servlet/servlet-api "2.5"] [ring/ring-mock "0.3.0"]]} diff --git a/src/aretherecookies/app.clj b/src/aretherecookies/app.clj new file mode 100644 index 0000000..88ad90e --- /dev/null +++ b/src/aretherecookies/app.clj @@ -0,0 +1,15 @@ +(ns aretherecookies.app + (:gen-class) + (:require [aretherecookies.handler :refer [app-routes]] + [environ.core :refer [env]] + [compojure.handler :refer [site]] + [ring.adapter.jetty :as jetty] + [ring.middleware.defaults :refer [wrap-defaults api-defaults]])) + +(def app-config (assoc-in api-defaults [:security :anti-forgery] false)) + +(def app (wrap-defaults app-routes app-config)) + +(defn -main [& [port]] + (let [port (Integer. (or port (env :port) 3000))] + (jetty/run-jetty (site #'app) {:port port :join? false}))) \ No newline at end of file diff --git a/src/aretherecookies/handler.clj b/src/aretherecookies/handler.clj index 0239b78..fa32b48 100644 --- a/src/aretherecookies/handler.clj +++ b/src/aretherecookies/handler.clj @@ -2,7 +2,6 @@ (:require [aretherecookies.db :refer [query-food-items build-fooditems-query]] [compojure.core :refer :all] [compojure.route :as route] - [ring.middleware.defaults :refer [wrap-defaults site-defaults]] [clojure.data.json :as json] [clojure.string :as str] [ring.middleware.anti-forgery :refer :all] @@ -11,14 +10,14 @@ (defn uuid-to-string [key value] (if (instance? java.util.UUID value) (.toString value) value)) -(defn get-coords [item] - (-> - item - (get :location) - json/read-str - (get "coordinates"))) +(defn get-coords [item] + (-> + item + (get :location) + json/read-str + (get "coordinates"))) -(defn build-lat-lng [[lng lat]] +(defn build-lat-lng [[lng lat]] (hash-map :longitude lng :latitude lat)) (defn build-latlng [item] @@ -26,32 +25,29 @@ (hash-map :longitude lng :latitude lat))) (defn parse-location [item] - (-> - item - build-latlng - (merge item) - (dissoc :location))) + (-> + item + build-latlng + (merge item) + (dissoc :location))) (defn food-items-to-json [query-result] - (map parse-location query-result)) + (map parse-location query-result)) (defn food-items-handler [req] (println "req---->" (:body req)) (let [{{lat "lat" lng "lng" filter "filter" orderby "orderby"} :body} req] (json/write-str - (hash-map - :orderby orderby - :filter filter - :fooditems (food-items-to-json - (query-food-items (build-fooditems-query lng lat (get filter "radius"))))) - :value-fn uuid-to-string))) + (hash-map + :orderby orderby + :filter filter + :fooditems (food-items-to-json + (query-food-items (build-fooditems-query lng lat (get filter "radius"))))) + :value-fn uuid-to-string))) (defroutes app-routes (GET "/" [] (str {:csrf-token - *anti-forgery-token*})) + *anti-forgery-token*})) (POST "/test" req "ok") (POST "/fooditems" req (wrap-json-body food-items-handler)) (GET "/echo" [location orderby filter] (str location orderby filter))) - -(def app - (wrap-defaults app-routes (assoc-in site-defaults [:security :anti-forgery] false)))