aboutsummaryrefslogtreecommitdiff
path: root/src/dionysus/web/admin/home.clj
diff options
context:
space:
mode:
Diffstat (limited to 'src/dionysus/web/admin/home.clj')
-rw-r--r--src/dionysus/web/admin/home.clj32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/dionysus/web/admin/home.clj b/src/dionysus/web/admin/home.clj
new file mode 100644
index 0000000..a06a4ff
--- /dev/null
+++ b/src/dionysus/web/admin/home.clj
@@ -0,0 +1,32 @@
+(ns dionysus.web.admin.home
+ (:require [dionysus.spotify :as dspotify]
+ [dionysus.web.utils :as dwutils]
+ [ring.util.response :as ruresp]
+ [dionysus.web.admin.home.blacklist :as dwahblacklist]
+ [dionysus.web.admin.home.server-settings :as dwahserver-settings]))
+
+(defn- render [_req]
+ (let [title (str @dwutils/title " - ADMIN")]
+ (dwutils/render-page title
+ [:div {:class "text"}
+ [:h1 title]
+ (dwahserver-settings/render-server-settings)
+ [:h2 "Blacklist"]
+ (dwahblacklist/render-blacklist-table nil)]
+ [:script {:src "/assets/htmx.js"}])))
+
+(defn handle [req]
+ (let [access-token (get-in req [:oauth2/access-tokens :spotify])
+ page-resp (delay (-> req
+ render
+ ruresp/response))]
+ (cond
+ (and (nil? access-token) (nil? @dspotify/token))
+ (ruresp/redirect "/auth")
+
+ (nil? @dspotify/token)
+ (do (reset! dspotify/token access-token)
+ @page-resp)
+
+ :else
+ @page-resp)))