diff options
| author | Scott Ostler <sostler@deathmachine.local> | 2010-03-04 08:37:28 -0500 |
|---|---|---|
| committer | Scott Ostler <sostler@deathmachine.local> | 2010-03-04 08:37:28 -0500 |
| commit | a613013fb60a8648b87691ebd50db1de081cddda (patch) | |
| tree | 16e51baa4b00f6a862f76ea5ea7f27c364fd759e /src | |
| parent | 8af42afceb087f4cb48670b6c9b3445fbcb388b8 (diff) | |
Initial topiclist
Diffstat (limited to 'src')
| -rwxr-xr-x | src/site.clj | 17 |
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!) |
