From 79ab816497161acfdbe38a0dbd4c9c6b470b8dbb Mon Sep 17 00:00:00 2001 From: Andrea Maria Piana Date: Tue, 20 Aug 2019 13:29:01 +0200 Subject: [PATCH] Fix serialization of group-chats Signed-off-by: Andrea Maria Piana --- src/status_im/data_store/chats.cljs | 14 +++++++++----- test/cljs/status_im/test/data_store/chats.cljs | 18 +++++++++--------- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/src/status_im/data_store/chats.cljs b/src/status_im/data_store/chats.cljs index eca00e52bf..daa0b4c2d7 100644 --- a/src/status_im/data_store/chats.cljs +++ b/src/status_im/data_store/chats.cljs @@ -49,13 +49,17 @@ (->> updates (group-by :signature) (map (fn [[signature events]] - {:events (map #(-> % - (assoc :clock-value (:clockValue %)) - (dissoc :signature :from :id :clockValue) - remove-empty-vals) events) + {:events + (into [] + (sort-by :clock-value (map #(-> % + (assoc :clock-value (:clockValue %)) + (update :members (fn [members] (into #{} members))) + (dissoc :signature :from :id :clockValue) + remove-empty-vals) events))) :from (-> events first :from) :signature signature - :chat-id chat-id})))) + :chat-id chat-id})) + (into #{}))) (defn type->rpc [{:keys [public? group-chat] :as chat}] (assoc chat :chatType (cond diff --git a/test/cljs/status_im/test/data_store/chats.cljs b/test/cljs/status_im/test/data_store/chats.cljs index b43a2cea47..5d81f6ccb8 100644 --- a/test/cljs/status_im/test/data_store/chats.cljs +++ b/test/cljs/status_im/test/data_store/chats.cljs @@ -121,15 +121,15 @@ :admins #{"a" "b"} :members-joined #{"a" "c"} :name "name" - :membership-updates [{:chat-id "chat-id" - :from "a" - :signature "b" - :events [{:type "chat-created" - :name "test" - :clock-value 1} - {:type "members-added" - :clock-value 2 - :members ["a" "b"]}]}] + :membership-updates #{{:chat-id "chat-id" + :from "a" + :signature "b" + :events [{:type "chat-created" + :name "test" + :clock-value 1} + {:type "members-added" + :clock-value 2 + :members #{"a" "b"}}]}} :unviewed-messages-count 2 :is-active true :group-chat-local-version 1