summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorScott Ostler <sostler@deathmachine.local>2010-03-04 08:37:28 -0500
committerScott Ostler <sostler@deathmachine.local>2010-03-04 08:37:28 -0500
commita613013fb60a8648b87691ebd50db1de081cddda (patch)
tree16e51baa4b00f6a862f76ea5ea7f27c364fd759e /src
parent8af42afceb087f4cb48670b6c9b3445fbcb388b8 (diff)
Initial topiclist
Diffstat (limited to 'src')
-rwxr-xr-xsrc/site.clj17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/site.clj b/src/site.clj
index 2c41946..5820a48 100755
--- a/src/site.clj
+++ b/src/site.clj
@@ -369,6 +369,21 @@
(defn valid-deadline? [deadline]
deadline)
+(defn topic-map-from-room [r]
+ (let [topic (or @(r :topic) {})]
+ {"key" (r :key)
+ "topic" (topic :topic)
+ "deadline" (topic :deadline)
+ "maker" (topic :maker)}))
+
+(defn validate-topic-list [session]
+ (if (session :is_admin)
+ (let [st (fetch-template "topic_list" session)]
+ (.setAttribute st "rooms"
+ (to-array (map topic-map-from-room (vals @rooms))))
+ (.toString st))
+ [404 "UNKNOWN_ROOM"]))
+
(defn set-topic! [room topic deadline maker]
(ref-set (room :topic)
{:topic topic
@@ -650,6 +665,7 @@
(POST "/msg" (validated-msg session params))
(POST "/submit-registration" (register session params))
(POST "/update-profile" (update-profile session params))
+ (GET "/topic-list" (validate-topic-list session))
(POST "/set-topic" (validate-set-topic session params))
(GET "/about_us" (serve-template "about_us" session))
(GET "/goodies" (serve-template "goodies" session))
@@ -713,7 +729,6 @@
([script] {:port 8080})
([script port] {:port (maybe-parse-int port)}))
-(prn *command-line-args*)
(def options (apply parse-command-args *command-line-args*))
(start-user-flusher!)