Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (re-frame/reg-fx
- ::save-discover
- (fn [discover]
- (discoveries/save discover)))
- (re-frame/reg-fx
- ::save-discovers
- (fn [discovers]
- (doseq [{:keys [message-id] :as discover} discovers]
- (when-not (discoveries/exists? message-id))
- (discoveries/save discover))))
- (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]} :db
- now :now}
- [_ {:keys [{:keys [data]} :payload
- from :from]}]]
- (when (and (get contacts from) data)
- (let [discovers (->> 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]} :payload
- from :from}]]
- (when (new-discover? discoveries message-id)
- (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}))))
Add Comment
Please, Sign In to add comment