Skip to content

Commit cd021f4

Browse files
committed
section 5 video 3
1 parent d780994 commit cd021f4

File tree

1 file changed

+19
-7
lines changed

1 file changed

+19
-7
lines changed

src/project1/blog.clj

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,15 @@
4040
(walk/keywordize-keys
4141
(json/read-str (slurp (:body request)))))
4242

43+
(defn json-error-handler [handler]
44+
(fn [request]
45+
(try
46+
(handler request)
47+
(catch Throwable throwable
48+
(assoc (json-response {:message (.getMessage throwable)
49+
:stacktrace (map str (.getStackTrace throwable))})
50+
:status 500)))))
51+
4352
(defn get-id [request]
4453
(Long/parseLong (-> request :route-params :id)))
4554

@@ -59,10 +68,13 @@
5968
(json-response (delete-blog-entry (get-id request))))
6069

6170
(def blog-handler
62-
(route/routing
63-
(route/with-route-matches :get "/entries" get-handler)
64-
(route/with-route-matches :post "/entries" post-handler)
65-
(route/with-route-matches :get "/entries/:id" get-entry-handler)
66-
(route/with-route-matches :put "/entries/:id" put-handler)
67-
(route/with-route-matches :delete "/entries/:id" delete-handler)))
68-
71+
(->
72+
(route/routing
73+
(route/with-route-matches :get "/entries" get-handler)
74+
(route/with-route-matches :post "/entries" post-handler)
75+
(route/with-route-matches :get "/entries/:id" get-entry-handler)
76+
(route/with-route-matches :put "/entries/:id" put-handler)
77+
(route/with-route-matches :delete "/entries/:id" delete-handler))
78+
json-error-handler
79+
))
80+

0 commit comments

Comments
 (0)