status-react/src/status_im/protocol/message_cache.cljs
2017-01-16 08:25:45 +02:00

23 lines
652 B
Clojure

(ns status-im.protocol.message-cache
(:refer-clojure :exclude [exists?]))
(defonce messages-set (atom #{}))
(defonce messages-map (atom {}))
(defn init!
[messages]
(reset! messages-set (set messages))
(reset! messages-map (->> messages
(map (fn [{:keys [message-id type] :as message}]
[[message-id type] message]))
(into {}))))
(defn add!
[{:keys [message-id type] :as message}]
(swap! messages-set conj message)
(swap! messages-map conj [[message-id type] message]))
(defn exists?
[message-id type]
(get @messages-map [message-id type]))