aboutsummaryrefslogtreecommitdiff
path: root/src/dionysus/web/enduser.clj
blob: 90b661b6c6315bd7e13c8a8c65539562c89688a6 (plain)
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
(ns dionysus.web.enduser
  (:require [dotenv :as env]
            [org.httpkit.server :as http-server]
            [reitit.ring :as rring]

            [dionysus.web.enduser.home :as dwehome]
            [dionysus.web.enduser.home.search :as dwehsearch]
            [ring.middleware.params :as rmparams]))

(def ^:private routes
  [["/" {:get {:handler dwehome/handle}}]
   ["/search"
    ["/" {:get {:handler dwehsearch/handle-search}}]
    ["/add/:uri/" {:post {:handler dwehsearch/handle-search-add}}]]
   ["/current-track/" {:get {:handler dwehome/handle-current-track}}]
   ["/assets/*" (rring/create-resource-handler)]])

(def ^:private handler
  (-> routes
      rring/router
      (rring/ring-handler (rring/redirect-trailing-slash-handler))
      rmparams/wrap-params))

(def ^:private stop-fn (atom nil))
(defn server-runs? [] (fn? @stop-fn))

(defn start-server! []
  (when (server-runs?) (@stop-fn))
  (reset! stop-fn (http-server/run-server handler {:port (or (env/env "ENDUSER_PORT") 8080)})))
#_(start-server!)

(defn stop-server! []
  (when (server-runs?)
    (@stop-fn)
    (reset! stop-fn nil)))