|
2 | 2 | (:require [compojure.core :refer :all]
|
3 | 3 | [compojure.route :as route]
|
4 | 4 | [clojure.data.json :as json]
|
| 5 | + [ring.middleware.json :as json-middleware] |
| 6 | + [ring.util.request :as request] |
| 7 | + [ring.util.response :refer [response]] |
5 | 8 | [ring.middleware.defaults :refer [wrap-defaults site-defaults]]))
|
6 | 9 |
|
| 10 | +(defn empty-task-list [] |
| 11 | + []) |
| 12 | + |
| 13 | +(defn- empty-response [] |
| 14 | + (response {:status 200 :headers {"Content-Type" "application/json"}})) |
| 15 | + |
| 16 | +(defn log-request-before [handler] |
| 17 | + (fn [request] |
| 18 | + (let [response (handler request)] |
| 19 | + (println (str "Request: " (:request-method request) " " (:uri request))) |
| 20 | + response))) |
| 21 | + |
| 22 | +(defn log-request [handler] |
| 23 | + (fn [request] |
| 24 | + (let [response (handler request)] |
| 25 | + (println (str "Request: " (:request-method request) " " (:uri request) " -> " (:status response))) |
| 26 | + response))) |
| 27 | + |
7 | 28 | (defroutes app-routes
|
8 | 29 | (GET "/" [] "Hello World")
|
9 | 30 | (GET "/healthz" [] (json/write-str {:message "ok"}))
|
10 | 31 |
|
11 |
| - (GET "/v0/tasks" [] []) |
12 |
| - (POST "/v0/tasks" [] (json/write-str {})) |
13 |
| - (DELETE "/v0/tasks/:id" [] (json/write-str {})) |
| 32 | + (GET "/v0/tasks" [] (json-middleware/wrap-json-response (response (empty-task-list)))) |
| 33 | + (POST "/v0/tasks" [title description] |
| 34 | + (let [task {:title title :description description}] |
| 35 | + (empty-response))) |
| 36 | + (DELETE "/v0/tasks/:id" [] (json-middleware/wrap-json-response(json/write-str {:something "something"}))) |
14 | 37 |
|
15 | 38 | (route/not-found "Not Found"))
|
16 | 39 |
|
17 |
| -(def app |
18 |
| - (wrap-defaults app-routes site-defaults)) |
| 40 | +;; TODO - Temporarily disable the antiforgery check |
| 41 | +;; I will enable it and add it to the rest of backends later on |
| 42 | +(def app (-> app-routes |
| 43 | + (log-request-before) |
| 44 | + (wrap-defaults (assoc-in site-defaults [:security :anti-forgery] false)) |
| 45 | + (log-request))) |
0 commit comments