diff options
| author | Scott Ostler <sostler@deathmachine.local> | 2010-02-27 18:28:06 -0500 |
|---|---|---|
| committer | Scott Ostler <sostler@deathmachine.local> | 2010-02-27 18:28:06 -0500 |
| commit | fa8c89b543bb6e23cc7cac5983cb61818a4e3139 (patch) | |
| tree | 506827edbf7270715333e2ea34e3ea793a24a989 /src | |
| parent | 4bb4fbe6f3abc01edcd402edd1f2c86bd690c062 (diff) | |
in-progress topics
Diffstat (limited to 'src')
| -rwxr-xr-x | src/site.clj | 36 |
1 files changed, 33 insertions, 3 deletions
diff --git a/src/site.clj b/src/site.clj index cd2b82f..28dadcb 100755 --- a/src/site.clj +++ b/src/site.clj @@ -148,10 +148,11 @@ (map process-user (sort-by #(% :nick) (vals @(room :users))))) -(defn updates [room since] +(defn updates [room since] {"users" (prepare-user-list room) "messages" (map process-message-for-json - (new-messages room since))}) + (new-messages room since)) + "topic" @(room :topic)}) (def *dumps-per-page* 20) @@ -200,7 +201,9 @@ :name (room-db :name) :description (room-db :description) :users (ref {}) - :messages (ref (fetch-messages-by-room (room-db :room_id) false))}) + :messages (ref (fetch-messages-by-room (room-db :room_id) false)) + :topic (ref nil) + }) ;; Templates @@ -357,6 +360,32 @@ :else (do (update-user-db user-id attr val) (resp-success "OK"))))) +;; Topics + +(defn valid-topic? [topic] + topic) + +(defn valid-deadline? [deadline] + deadline) + +(defn set-topic! [room topic deadline maker] + (ref-set (room :topic) + {:topic topic + :deadline deadline + :maker maker})) + +(defn validate-set-topic [session params] + (let [room (@rooms (params :room)) + topic (params :topic) + deadline (params :deadline)] + (cond (not (session :is_admin)) (resp-error "NOT_VIP") + (not (valid-topic? topic)) (resp-error "INVALID_TOPIC") + (not (valid-deadline? deadline)) (resp-error "INVALID_DEADLINE") + (not room) (resp-error "INVALID_ROOM") + :else (do + (dosync (set-topic! room topic deadline (session :nick))) + (resp-success "OK"))))) + ;; Chat (defn validate-room-access [room-key session] @@ -620,6 +649,7 @@ (POST "/msg" (validated-msg session params)) (POST "/submit-registration" (register session params)) (POST "/update-profile" (update-profile session params)) + (POST "/set-topic" (validate-set-topic session params)) (GET "/about_us" (serve-template "about_us" session)) (GET "/goodies" (serve-template "goodies" session)) (GET "/help" (serve-template "help" session)) |
