summaryrefslogtreecommitdiff
path: root/src/datalayer.clj
diff options
context:
space:
mode:
Diffstat (limited to 'src/datalayer.clj')
-rw-r--r--src/datalayer.clj24
1 files changed, 13 insertions, 11 deletions
diff --git a/src/datalayer.clj b/src/datalayer.clj
index ecdc6dc..8590a7d 100644
--- a/src/datalayer.clj
+++ b/src/datalayer.clj
@@ -181,9 +181,10 @@ WHERE u.nick = ANY(?)"
[msg-id author-id (:user_id r)]))
[msg-id ts]))))
-(defn insert-recips-into-redis! [recips author-id dt content]
+(defn insert-recips-into-redis! [recips author-id dt content room-key]
(let [msg-json (json-str {"author_id" author-id
"recips" (map :nick recips)
+ "key" room-key
"content" content})
ts (.getTime dt)]
(redis/with-server redis-server
@@ -196,12 +197,13 @@ WHERE u.nick = ANY(?)"
(defn topic-key [topic]
(str "topic:" topic))
-(defn insert-topics-into-redis! [topics recips author-nick author-avatar dt msg-id content]
+(defn insert-topics-into-redis! [topics recips author-nick author-avatar dt msg-id content room-key]
(let [ts (.getTime dt)
msg-json (json-str {"nick" author-nick
"avatar" author-avatar
- "recips" (map :recips recips)
+ "recips" (map :nick recips)
"content" content
+ "key" room-key
"message_id" msg-id
"ts" ts})]
(redis/with-server redis-server
@@ -210,29 +212,29 @@ WHERE u.nick = ANY(?)"
(redis/lpush (topic-key t)
msg-json))))))
-(defn insert-message! [author-id author-nick author-avatar room-id content]
+(defn insert-message! [author-id author-nick author-avatar room content]
(let [msg-type (classify-msg content)
is-image (boolean (#{:image :mixed} msg-type))
is-text (boolean (#{:mixed :text} msg-type))
recips (get-recips content)
topics (get-topics content)
[msg-id dt] (insert-message-into-postgres! author-id
- room-id
+ (:room_id room)
content
is-image
is-text
recips)]
- (if-not (empty? recips)
- (insert-recips-into-redis! recips author-id dt content))
- (if-not (empty? topics)
- (insert-topics-into-redis! topics recips author-nick author-avatar dt msg-id content))
+ (when-not (:admin_only room)
+ (if-not (empty? recips)
+ (insert-recips-into-redis! recips author-id dt content (:key room)))
+ (if-not (empty? topics)
+ (insert-topics-into-redis! topics recips author-nick author-avatar dt msg-id content (:key room))))
{:author author-nick
:msg-id msg-id
- :room room-id
+ :room (:room_id room)
:db-ts dt
:content content
:recips (map :nick recips)
- :topics topics
}))
(defn fetch-direct-messages [user-id]