-
Notifications
You must be signed in to change notification settings - Fork 0
/
handler.clj
57 lines (50 loc) · 1.69 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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
(ns mayu.handler
(:require
[reitit.ring :as reitit-ring]
[ring.middleware.content-type :refer [wrap-content-type]]
[ring.middleware.params :refer [wrap-params]]
[prone.middleware :refer [wrap-exceptions]]
[ring.middleware.reload :refer [wrap-reload]]
[ring.middleware.defaults :refer [site-defaults wrap-defaults]]
[hiccup.page :refer [include-js include-css html5]]
[config.core :refer [env]]))
(def mount-target
[:div#app
[:h2 "Welcome to mayu"]
[:p "please wait while Figwheel is waking up ..."]
[:p "(Check the js console for hints if nothing exciting happens.)"]])
(defn head []
[:head
[:meta {:charset "utf-8"}]
[:meta {:name "viewport"
:content "width=device-width, initial-scale=1"}]
(include-css (if (env :dev) "/css/site.css" "/css/site.min.css"))
(include-css "https://cdn.jsdelivr.net/npm/uikit@3.4.1/dist/css/uikit.min.css")])
(defn loading-page []
(html5
(head)
[:body {:class "body-container"}
mount-target
(include-js "/js/app.js")]))
(defn index-handler
[_request]
{:status 200
:headers {"Content-Type" "text/html"}
:body (loading-page)})
(def middleware
[#(wrap-defaults % site-defaults)
wrap-exceptions
wrap-reload])
(def app
(reitit-ring/ring-handler
(reitit-ring/router
[["/" {:get {:handler index-handler}}]
["/items"
["" {:get {:handler index-handler}}]
["/:item-id" {:get {:handler index-handler
:parameters {:path {:item-id int?}}}}]]
["/about" {:get {:handler index-handler}}]])
(reitit-ring/routes
(reitit-ring/create-resource-handler {:path "/" :root "/public"})
(reitit-ring/create-default-handler))
{:middleware middleware}))