-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhandler.clj
28 lines (24 loc) · 1.07 KB
/
handler.clj
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
(ns breadule.handler
(:require
[compojure.core :refer [GET POST defroutes]]
[compojure.route :refer [resources]]
[ring.util.response :refer [resource-response]]
[ring.middleware.defaults :refer [wrap-defaults site-defaults]]
[ring.middleware.reload :refer [wrap-reload]]
[ring.middleware.json :refer [json-response]]
[shadow.http.push-state :as push-state]
[breadule.mongo :refer [insert-schedule get-all-schedules]]))
(defroutes routes
(GET "/" [] (resource-response "index.html" {:root "public"} "text/html")
(GET "/api/schedules" [] (json-response (get-all-schedules) {:pretty false}))
(POST "/api/schedules" req (let [res (:params req)]
(insert-schedule res)))
(resources "/")))
(defn wrap-dir-index [handler]
(fn [req]
(print "here")
(handler
(update-in req [:uri]
#(if (= "/" %) "/index.html" %)))))
(def dev-handler (-> #'routes wrap-reload push-state/handle wrap-dir-index))
(def handler (wrap-dir-index (wrap-defaults (wrap-dir-index routes) (assoc site-defaults :security false))))