diff --git a/indexedDb/impl/dm/implementation.go b/indexedDb/impl/dm/implementation.go index 9551f7bad49d4bc19c32c6eee17543260661494d..6fa301bd5be515898cb6d8a18ec4b67a348d7df5 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 b4cfdcb6011bb57078fc0dbf8e3f0a3824833ac7..c77185755ccc66709e73e9a0b7d729d8a4958fbd 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"` }