From 392cbb8bbdb24c6d514da5efd545c7ddf2783181 Mon Sep 17 00:00:00 2001 From: "Richard T. Carback III" <rick.carback@gmail.com> Date: Tue, 28 Feb 2023 17:48:58 +0000 Subject: [PATCH] add codeset version back into conversation, we need it on init --- indexedDb/impl/dm/implementation.go | 23 ++++++++++++++--------- indexedDb/impl/dm/model.go | 9 +++++---- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/indexedDb/impl/dm/implementation.go b/indexedDb/impl/dm/implementation.go index 9551f7ba..6fa301bd 100644 --- a/indexedDb/impl/dm/implementation.go +++ b/indexedDb/impl/dm/implementation.go @@ -41,15 +41,16 @@ type wasmModel struct { // joinConversation is used for joining new conversations. func (w *wasmModel) joinConversation(nickname string, - pubKey ed25519.PublicKey, dmToken uint32) error { + pubKey ed25519.PublicKey, dmToken uint32, codeset uint8) error { parentErr := errors.New("failed to joinConversation") // Build object newConvo := Conversation{ - Pubkey: pubKey, - Nickname: nickname, - Token: dmToken, - Blocked: false, + Pubkey: pubKey, + Nickname: nickname, + Token: dmToken, + CodesetVersion: codeset, + Blocked: false, } // Convert to jsObject @@ -105,7 +106,8 @@ func (w *wasmModel) Receive(messageID message.ID, nickname string, text []byte, _, err := impl.Get(w.db, conversationStoreName, utils.CopyBytesToJS(pubKey)) if err != nil { if strings.Contains(err.Error(), impl.ErrDoesNotExist) { - err = w.joinConversation(nickname, pubKey, dmToken) + err = w.joinConversation(nickname, pubKey, dmToken, + codeset) if err != nil { jww.ERROR.Printf("[DM indexedDB] %+v", err) return 0 @@ -154,7 +156,8 @@ func (w *wasmModel) ReceiveText(messageID message.ID, nickname, text string, _, err := impl.Get(w.db, conversationStoreName, utils.CopyBytesToJS(pubKey)) if err != nil { if strings.Contains(err.Error(), impl.ErrDoesNotExist) { - err = w.joinConversation(nickname, pubKey, dmToken) + err = w.joinConversation(nickname, pubKey, dmToken, + codeset) if err != nil { jww.ERROR.Printf("[DM indexedDB] %+v", err) return 0 @@ -206,7 +209,8 @@ func (w *wasmModel) ReceiveReply(messageID, reactionTo message.ID, nickname, _, err := impl.Get(w.db, conversationStoreName, utils.CopyBytesToJS(pubKey)) if err != nil { if strings.Contains(err.Error(), impl.ErrDoesNotExist) { - err = w.joinConversation(nickname, pubKey, dmToken) + err = w.joinConversation(nickname, pubKey, dmToken, + codeset) if err != nil { jww.ERROR.Printf("[DM indexedDB] %+v", err) return 0 @@ -258,7 +262,8 @@ func (w *wasmModel) ReceiveReaction(messageID, _ message.ID, nickname, _, err := impl.Get(w.db, conversationStoreName, utils.CopyBytesToJS(pubKey)) if err != nil { if strings.Contains(err.Error(), impl.ErrDoesNotExist) { - err = w.joinConversation(nickname, pubKey, dmToken) + err = w.joinConversation(nickname, pubKey, dmToken, + codeset) if err != nil { jww.ERROR.Printf("[DM indexedDB] %+v", err) return 0 diff --git a/indexedDb/impl/dm/model.go b/indexedDb/impl/dm/model.go index b4cfdcb6..c7718575 100644 --- a/indexedDb/impl/dm/model.go +++ b/indexedDb/impl/dm/model.go @@ -57,8 +57,9 @@ type Message struct { // message exchange between two recipients. // A Conversation has many Message. type Conversation struct { - Pubkey []byte `json:"pub_key"` // Matches convoPkeyName - Nickname string `json:"nickname"` - Token uint32 `json:"token"` - Blocked bool `json:"blocked"` + Pubkey []byte `json:"pub_key"` // Matches convoPkeyName + Nickname string `json:"nickname"` + Token uint32 `json:"token"` + CodesetVersion uint8 `json:"codeset_version"` + Blocked bool `json:"blocked"` } -- GitLab