aboutsummaryrefslogtreecommitdiff
path: root/src/dionysus/web/enduser.clj
blob: ab28749e2c071e6e353a5dfe408118f71caf27cd (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
36
37
(ns dionysus.web.enduser
  (:require [dotenv :as env]
            [org.httpkit.server :as http-server]
            [reitit.ring :as rring]
            [dionysus.utils :as dutils]

            [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 (-> (env/env "ENDUSER_PORT")
                                                             (dutils/try-parse-int 8080))})))
#_(start-server!)

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