Skip to content

Instantly share code, notes, and snippets.

@yenda
Created November 21, 2017 16:03
Show Gist options
  • Save yenda/63d84555e9feb8f9cfef36fb9fe98efb to your computer and use it in GitHub Desktop.
Save yenda/63d84555e9feb8f9cfef36fb9fe98efb to your computer and use it in GitHub Desktop.
(defn add-discover [db {:keys [message-id tags] :as discover}]
(-> db
(update :tags concat tags)
(assoc-in [:discoveries message-id discover])))
(defn new-discover? [discoveries {:keys [message-id]}]
(not (get discoveries message-id )))
(handlers/register-handler-fx
:discoveries-response-received
[(re-frame/inject-cofx :now)]
(fn [{{:keys [discoveries]
:contacts/keys [contacts] :as db} :db
now :now}
[_ {:keys [payload from]}]]
(when (get contacts from)
(when-let [discovers (some ->> data
(filter #(new-discover? discoveries discover))
(map #(assoc % :created-at now)))]
{:db (reduce add-discover db discovers)
::add-discovers discovers}))))
(handlers/register-handler-fx
:status-received
[(re-frame/inject-cofx :now)]
(fn [{{:keys [discoveries] :as db} :db
now :now}
[_ {{:keys [message-id status hastags profile] :as payload} :payload
from :from}]]
(when (new-discover? discoveries payload)
(let [{:keys [name profile-image]} profile
discover {:message-id message-id
:name name
:photo-path profile-image
:status status
:whisper-id from
:tags (map #(hash-map :name %) hashtags)
:created-at now}]
{:db (add-discover db)
::add-discover discover}))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment