First commit
This commit is contained in:
5
src/api2smtp/config.clj
Normal file
5
src/api2smtp/config.clj
Normal file
@@ -0,0 +1,5 @@
|
||||
(ns api2smtp.config
|
||||
(:require
|
||||
[clj-yaml.core :as yaml]))
|
||||
|
||||
(def config (yaml/parse-string (slurp "config.yaml")))
|
24
src/api2smtp/core.clj
Normal file
24
src/api2smtp/core.clj
Normal file
@@ -0,0 +1,24 @@
|
||||
(ns api2smtp.core
|
||||
(:require
|
||||
[api2smtp.config :refer [config]]
|
||||
[ring.middleware.defaults :refer [site-defaults wrap-defaults]]
|
||||
[ring.middleware.reload :refer [wrap-reload]]
|
||||
[ring.middleware.cors :refer [wrap-cors]]
|
||||
[api2smtp.urls :refer [all-routes]]
|
||||
[ring.adapter.jetty :refer [run-jetty]]) (:gen-class))
|
||||
|
||||
(def wrapped-handler
|
||||
;; Handler middlewares
|
||||
(-> all-routes
|
||||
(wrap-defaults (assoc-in site-defaults [:security :anti-forgery] false))
|
||||
(wrap-cors
|
||||
:access-control-allow-origin [(re-pattern (if (config :debug) ".*" (config :domain)))]
|
||||
:access-control-allow-methods [:get])
|
||||
(#(if (config :debug) (wrap-reload %) %))))
|
||||
|
||||
(defn -main [& args]
|
||||
;; Main
|
||||
;; Welcome
|
||||
(prn (str "Open " (config :domain) ":" (config :port)))
|
||||
;; Run web server
|
||||
(run-jetty wrapped-handler {:port (config :port)}))
|
20
src/api2smtp/urls.clj
Normal file
20
src/api2smtp/urls.clj
Normal file
@@ -0,0 +1,20 @@
|
||||
(ns api2smtp.urls
|
||||
(:require
|
||||
[compojure.core :refer [defroutes GET]]
|
||||
[compojure.route :as route]
|
||||
[api2smtp.views.public :as view-public]))
|
||||
|
||||
(defroutes public
|
||||
;; Urls public pages
|
||||
(GET "/" [] view-public/index)
|
||||
(GET "/api" [] view-public/api))
|
||||
|
||||
|
||||
(defroutes resources-routes
|
||||
;; Resources (statics)
|
||||
(route/resources "/")
|
||||
(route/not-found view-public/page-404))
|
||||
|
||||
(def all-routes
|
||||
;; Wrap routers. "resources-routes" should always be the last.
|
||||
(compojure.core/routes public resources-routes))
|
20
src/api2smtp/views/public.clj
Normal file
20
src/api2smtp/views/public.clj
Normal file
@@ -0,0 +1,20 @@
|
||||
;;;; Views public web
|
||||
(ns api2smtp.views.public
|
||||
(:require
|
||||
[tadam.templates :refer [render-HTML render-JSON render-404]]
|
||||
))
|
||||
|
||||
(defn index
|
||||
;; View HTML
|
||||
[req]
|
||||
(render-HTML req "public/welcome.html" {}))
|
||||
|
||||
(defn api
|
||||
;; View JSON
|
||||
[req]
|
||||
(render-JSON req {:result true}))
|
||||
|
||||
(defn page-404
|
||||
;; View page 404
|
||||
[req]
|
||||
(render-404 req "public/404.html" {}))
|
Reference in New Issue
Block a user