Guest User

Untitled

a guest
Nov 22nd, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.82 KB | None | 0 0
  1. (re-frame/reg-fx
  2. ::save-discover
  3. (fn [discover]
  4. (discoveries/save discover)))
  5.  
  6. (re-frame/reg-fx
  7. ::save-discovers
  8. (fn [discovers]
  9. (doseq [{:keys [message-id] :as discover} discovers]
  10. (when-not (discoveries/exists? message-id))
  11. (discoveries/save discover))))
  12.  
  13. (defn add-discover [db {:keys [message-id tags] :as discover}]
  14. (-> db
  15. (update :tags concat tags)
  16. (assoc-in [:discoveries message-id discover])))
  17.  
  18. (defn new-discover? [discoveries {:keys [message-id]}]
  19. (not (get discoveries message-id )))
  20.  
  21. (handlers/register-handler-fx
  22. :discoveries-response-received
  23. [(re-frame/inject-cofx :now)]
  24. (fn [{{:keys [discoveries]
  25. :contacts/keys [contacts]} :db
  26. now :now}
  27. [_ {:keys [{:keys [data]} :payload
  28. from :from]}]]
  29. (when (and (get contacts from) data)
  30. (let [discovers (->> data
  31. (filter #(new-discover? discoveries discover))
  32. (map #(assoc % :created-at now)))]
  33. {:db (reduce add-discover db discovers)
  34. ::add-discovers discovers})
  35.  
  36. (handlers/register-handler-fx
  37. :status-received
  38. [(re-frame/inject-cofx :now)]
  39. (fn [{{:keys [discoveries] :as db} :db
  40. now :now}
  41. [_ {{:keys [message-id status hastags profile]} :payload
  42. from :from}]]
  43. (when (new-discover? discoveries message-id)
  44. (let [{:keys [name profile-image]} profile
  45. discover {:message-id message-id
  46. :name name
  47. :photo-path profile-image
  48. :status status
  49. :whisper-id from
  50. :tags (map #(hash-map :name %) hashtags)
  51. :created-at now}]
  52. {:db (add-discover db)
  53. ::add-discover discover}))))
Add Comment
Please, Sign In to add comment