Skip to content
Snippets Groups Projects

fix for latest client release

Merged Jake Taylor requested to merge release into master
Compare and Show latest version
16 files
+ 734
656
Compare changes
  • Side-by-side
  • Inline
Files
16
@@ -11,8 +11,8 @@ package main
import (
"crypto/ed25519"
"encoding/base64"
"encoding/json"
"strconv"
"strings"
"sync"
"syscall/js"
@@ -122,8 +122,7 @@ func (w *wasmModel) deleteMsgByChannel(channelID *id.ID) error {
}
// Perform the operation
channelIdStr := base64.StdEncoding.EncodeToString(channelID.Marshal())
keyRange, err := idb.NewKeyRangeOnly(js.ValueOf(channelIdStr))
keyRange, err := idb.NewKeyRangeOnly(impl.EncodeBytes(channelID.Marshal()))
cursorRequest, err := index.OpenCursorRange(keyRange, idb.CursorNext)
if err != nil {
return errors.WithMessagef(parentErr, "Unable to open Cursor: %+v", err)
@@ -303,9 +302,8 @@ func (w *wasmModel) UpdateFromMessageID(messageID message.ID,
w.updateMux.Lock()
defer w.updateMux.Unlock()
msgIDStr := base64.StdEncoding.EncodeToString(messageID.Marshal())
currentMsgObj, err := impl.GetIndex(w.db, messageStoreName,
messageStoreMessageIndex, js.ValueOf(msgIDStr))
messageStoreMessageIndex, impl.EncodeBytes(messageID.Marshal()))
if err != nil {
jww.ERROR.Printf("%+v", errors.WithMessagef(parentErr,
"Failed to get message by index: %+v", err))
@@ -385,7 +383,7 @@ func buildMessage(channelID, messageID, parentID []byte, nickname string,
ChannelID: channelID,
ParentMessageID: parentID,
Timestamp: timestamp,
Lease: lease,
Lease: strconv.FormatInt(int64(lease), 10),
Status: uint8(status),
Hidden: hidden,
Pinned: pinned,
@@ -420,8 +418,9 @@ func (w *wasmModel) receiveHelper(
// Store message to database
result, err := impl.Put(w.db, messageStoreName, messageObj)
if err != nil && !strings.Contains(err.Error(),
"at least one key does not satisfy the uniqueness requirements") {
// FIXME: The following is almost certainly causing a bug
// where all of our upsert operations are failing.
if err != nil && !strings.Contains(err.Error(), impl.ErrUniqueConstraint) {
// Only return non-unique constraint errors so that the case
// below this one can be hit and handle duplicate entries properly.
return 0, errors.Errorf("Unable to put Message: %+v", err)
@@ -468,6 +467,15 @@ func (w *wasmModel) GetMessage(
}
}
lease := time.Duration(0)
if len(lookupResult.Lease) > 0 {
leaseInt, err := strconv.ParseInt(lookupResult.Lease, 10, 64)
if err != nil {
return channels.ModelMessage{}, err
}
lease = time.Duration(leaseInt)
}
return channels.ModelMessage{
UUID: lookupResult.ID,
Nickname: lookupResult.Nickname,
@@ -475,7 +483,7 @@ func (w *wasmModel) GetMessage(
ChannelID: channelId,
ParentMessageID: parentMsgId,
Timestamp: lookupResult.Timestamp,
Lease: lookupResult.Lease,
Lease: lease,
Status: channels.SentStatus(lookupResult.Status),
Hidden: lookupResult.Hidden,
Pinned: lookupResult.Pinned,
@@ -489,10 +497,8 @@ func (w *wasmModel) GetMessage(
// DeleteMessage removes a message with the given messageID from storage.
func (w *wasmModel) DeleteMessage(messageID message.ID) error {
msgId := js.ValueOf(base64.StdEncoding.EncodeToString(messageID.Bytes()))
err := impl.DeleteIndex(
w.db, messageStoreName, messageStoreMessageIndex, pkeyName, msgId)
err := impl.DeleteIndex(w.db, messageStoreName,
messageStoreMessageIndex, pkeyName, impl.EncodeBytes(messageID.Marshal()))
if err != nil {
return err
}
@@ -510,7 +516,7 @@ func (w *wasmModel) MuteUser(
// msgIDLookup gets the UUID of the Message with the given messageID.
func (w *wasmModel) msgIDLookup(messageID message.ID) (*Message, error) {
msgIDStr := js.ValueOf(base64.StdEncoding.EncodeToString(messageID.Bytes()))
msgIDStr := impl.EncodeBytes(messageID.Marshal())
resultObj, err := impl.GetIndex(w.db, messageStoreName,
messageStoreMessageIndex, msgIDStr)
if err != nil {
Loading