(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)))