Update project

This commit is contained in:
Andros Fenollosa
2020-11-04 07:25:21 +01:00
parent c9c3d0df67
commit a5a7253855
17 changed files with 267 additions and 337 deletions

5
src/rsspaper/config.clj Normal file
View File

@@ -0,0 +1,5 @@
(ns rsspaper.config
(:require
[clj-yaml.core :as yaml]))
(def config (yaml/parse-string (slurp "config.yaml")))

View File

@@ -1,6 +1,24 @@
(ns rsspaper.core)
(ns rsspaper.core
(:require
[rsspaper.config :refer [config]]
[ring.middleware.defaults :refer [site-defaults wrap-defaults]]
[ring.middleware.reload :refer [wrap-reload]]
[ring.middleware.cors :refer [wrap-cors]]
[rsspaper.urls :refer [all-routes]]
[ring.adapter.jetty :refer [run-jetty]]) (:gen-class))
(defn foo
"I don't do a whole lot."
[x]
(println x "Hello, World!"))
(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/rsspaper/urls.clj Normal file
View File

@@ -0,0 +1,20 @@
(ns rsspaper.urls
(:require
[compojure.core :refer [defroutes GET]]
[compojure.route :as route]
[rsspaper.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))

View File

@@ -0,0 +1,20 @@
;;;; Views public web
(ns rsspaper.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" {}))