mirror of
https://github.com/status-im/status-mobile.git
synced 2025-02-22 13:28:45 +00:00
- do not logout and remove previous mailserver from peers when changing mailserver - rename wnode mailserver - move transport.inbox to mailserver.core - fix all subs and db keys Signed-off-by: yenda <eric@status.im>
67 lines
2.3 KiB
Clojure
67 lines
2.3 KiB
Clojure
(ns status-im.data-store.mailservers
|
|
(:require [cljs.tools.reader.edn :as edn]
|
|
[re-frame.core :as re-frame]
|
|
[status-im.data-store.realm.core :as core]))
|
|
|
|
(re-frame/reg-cofx
|
|
:data-store/get-all-mailservers
|
|
(fn [cofx _]
|
|
(assoc cofx :data-store/mailservers (mapv #(-> %
|
|
(update :id keyword)
|
|
(update :fleet keyword))
|
|
(-> @core/account-realm
|
|
(core/get-all :mailserver)
|
|
(core/all-clj :mailserver))))))
|
|
|
|
(defn save-tx
|
|
"Returns tx function for saving a mailserver"
|
|
[{:keys [id] :as mailserver}]
|
|
(fn [realm]
|
|
(core/create realm
|
|
:mailserver
|
|
mailserver
|
|
true)))
|
|
|
|
(defn delete-tx
|
|
"Returns tx function for deleting a mailserver"
|
|
[id]
|
|
(fn [realm]
|
|
(core/delete realm
|
|
(core/get-by-field realm :mailserver :id id))))
|
|
|
|
(defn deserialize-mailserver-topic [serialized-mailserver-topic]
|
|
(-> serialized-mailserver-topic
|
|
(dissoc :topic)
|
|
(update :chat-ids edn/read-string)))
|
|
|
|
(re-frame/reg-cofx
|
|
:data-store/mailserver-topics
|
|
(fn [cofx _]
|
|
(assoc cofx
|
|
:data-store/mailserver-topics
|
|
(reduce (fn [acc {:keys [topic] :as mailserver-topic}]
|
|
(assoc acc topic (deserialize-mailserver-topic mailserver-topic)))
|
|
{}
|
|
(-> @core/account-realm
|
|
(core/get-all :mailserver-topic)
|
|
(core/all-clj :mailserver-topic))))))
|
|
|
|
(defn save-mailserver-topic-tx
|
|
"Returns tx function for saving mailserver topic"
|
|
[{:keys [topic mailserver-topic]}]
|
|
(fn [realm]
|
|
(core/create realm
|
|
:mailserver-topic
|
|
(-> mailserver-topic
|
|
(assoc :topic topic)
|
|
(update :chat-ids pr-str))
|
|
true)))
|
|
|
|
(defn delete-mailserver-topic-tx
|
|
"Returns tx function for deleting mailserver topic"
|
|
[topic]
|
|
(fn [realm]
|
|
(let [mailserver-topic (core/single
|
|
(core/get-by-field realm :mailserver-topic :topic topic))]
|
|
(core/delete realm mailserver-topic))))
|