Skip to content

Commit e55b109

Browse files
committed
chore: adding endpoints and middlewares
1 parent 2738652 commit e55b109

File tree

2 files changed

+35
-6
lines changed

2 files changed

+35
-6
lines changed

backend-rest-clojure/project.clj

+3-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
:dependencies [[org.clojure/clojure "1.10.0"]
66
[compojure "1.6.1"]
77
[org.clojure/data.json "2.5.0"]
8-
[ring/ring-defaults "0.3.2"]]
8+
[ring/ring-defaults "0.3.2"]
9+
[ring/ring-core "1.9.0"]
10+
[ring/ring-json "0.5.0"]]
911
:plugins [[lein-ring "0.12.5"]]
1012
:ring {:handler kadai.handler/app}
1113
:profiles

backend-rest-clojure/src/kadai/handler.clj

+32-5
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,44 @@
22
(:require [compojure.core :refer :all]
33
[compojure.route :as route]
44
[clojure.data.json :as json]
5+
[ring.middleware.json :as json-middleware]
6+
[ring.util.request :as request]
7+
[ring.util.response :refer [response]]
58
[ring.middleware.defaults :refer [wrap-defaults site-defaults]]))
69

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+
728
(defroutes app-routes
829
(GET "/" [] "Hello World")
930
(GET "/healthz" [] (json/write-str {:message "ok"}))
1031

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"})))
1437

1538
(route/not-found "Not Found"))
1639

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

Comments
 (0)