From 5e7956a09d4c75a0c6ba0f63552ee0151978c9bc Mon Sep 17 00:00:00 2001 From: Gordon <46924906+FGadvancer@users.noreply.github.com> Date: Thu, 13 Jul 2023 13:58:23 +0800 Subject: [PATCH] feat: add wasm multipart upload (#108) * fix: message status change * fix: page pull change args * feat: add wasm multipart upload * feat: add wasm multipart upload --- .vscode/launch.json | 15 -- .vscode/settings.json | 8 - internal/conversation_msg/file_js.go | 68 ++++++++ internal/conversation_msg/sdk.go | 12 +- internal/util/post.go | 4 +- pkg/db/db_js.go | 6 +- wasm/event_listener/caller.go | 10 +- wasm/exec/executor.go | 140 +++++++++++++++ wasm/indexdb/black_model.go | 23 +-- wasm/indexdb/cache_message.go | 9 +- wasm/indexdb/chat_log_model.go | 165 +++++++++--------- .../chat_log_reaction_extension_model.go | 39 +++-- wasm/indexdb/conversation_model.go | 83 ++++----- .../conversation_unread_message_model.go | 9 +- wasm/indexdb/friend_model.go | 31 ++-- wasm/indexdb/friend_request_model.go | 23 +-- wasm/indexdb/group_member_model.go | 73 ++++---- wasm/indexdb/group_model.go | 31 ++-- wasm/indexdb/group_request.model.go | 25 +-- wasm/indexdb/{indexdb.go => init.go} | 103 +---------- wasm/indexdb/notification_model.go | 7 +- wasm/indexdb/super_group_chat_log_model.go | 107 ++++++------ wasm/indexdb/super_group_model.go | 25 +-- wasm/indexdb/user_model.go | 21 ++- 24 files changed, 569 insertions(+), 468 deletions(-) delete mode 100644 .vscode/launch.json delete mode 100644 .vscode/settings.json create mode 100644 internal/conversation_msg/file_js.go create mode 100644 wasm/exec/executor.go rename wasm/indexdb/{indexdb.go => init.go} (54%) diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index 257f6135a..000000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - // Learn about properties using IntelliSense. - // Hover to view a description of an existing property. - // for more information, please visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "name": "Launch Package", - "type": "go", - "request": "launch", - "mode": "auto", - "program": "${fileDirname}" - } - ] -} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 9e6f376db..000000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "go.testFlags": [ - "-v", "-count=1" - ], - "go.testEnvVars": { - - } -} \ No newline at end of file diff --git a/internal/conversation_msg/file_js.go b/internal/conversation_msg/file_js.go new file mode 100644 index 000000000..8627910d7 --- /dev/null +++ b/internal/conversation_msg/file_js.go @@ -0,0 +1,68 @@ +// Copyright © 2023 OpenIM SDK. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build js && wasm +// +build js,wasm + +package conversation_msg + +import ( + "open_im_sdk/wasm/exec" + "syscall/js" +) + +type JSFile struct { +} + +func NewFile() *JSFile { + return &JSFile{} +} +func (j *JSFile) Open(uuid string) (int64, error) { + return WasmOpen(uuid) +} + +func (j *JSFile) Read(uuid string, offset int64, length int64) ([]byte, error) { + return WasmRead(uuid, offset, length) +} + +func (j *JSFile) Close(uuid string) error { + return WasmClose(uuid) +} + +func WasmOpen(uuid string) (int64, error) { + result, err := exec.Exec(uuid) + if err != nil { + return 0, err + } + if v, ok := result.(float64); ok { + return int64(v), nil + } + return 0, exec.ErrType +} +func WasmRead(uuid string, offset int64, length int64) ([]byte, error) { + result, err := exec.Exec(uuid, offset, length) + if err != nil { + return nil, err + } else { + if v, ok := result.(js.Value); ok { + return exec.ExtractArrayBuffer(v), nil + } else { + return nil, exec.ErrType + } + } +} +func WasmClose(uuid string) error { + _, err := exec.Exec(uuid) + return err +} diff --git a/internal/conversation_msg/sdk.go b/internal/conversation_msg/sdk.go index b80872e73..ba1ef726f 100644 --- a/internal/conversation_msg/sdk.go +++ b/internal/conversation_msg/sdk.go @@ -27,7 +27,6 @@ import ( "open_im_sdk/pkg/db/model_struct" "open_im_sdk/pkg/sdkerrs" "path/filepath" - "runtime" "sort" "strings" "sync" @@ -395,15 +394,8 @@ func (c *Conversation) SendMessage(ctx context.Context, s *sdk_struct.MsgStruct, return nil, err } } else { - //if oldMessage.Status != constant.MsgStatusSendFailed { - // return nil, sdkerrs.ErrMsgRepeated - //} else { - // s.Status = constant.MsgStatusSending - //} - //opy from v2.3.0,May need to be modified - if oldMessage.Status == constant.MsgStatusSendSuccess { - callback.OnSuccess(utils.StructToJsonString(oldMessage)) - runtime.Goexit() + if oldMessage.Status != constant.MsgStatusSendFailed { + return nil, sdkerrs.ErrMsgRepeated } else { s.Status = constant.MsgStatusSending } diff --git a/internal/util/post.go b/internal/util/post.go index dcfde6d6a..d937c3c9f 100644 --- a/internal/util/post.go +++ b/internal/util/post.go @@ -116,8 +116,8 @@ func CallApi[T any](ctx context.Context, api string, req any) (*T, error) { func GetPageAll[A interface { GetPagination() *sdkws.RequestPagination }, B, C any](ctx context.Context, api string, req A, fn func(resp *B) []C) ([]C, error) { - if req.GetPagination().ShowNumber == 0 { - req.GetPagination().ShowNumber = 50 / 10 + if req.GetPagination().ShowNumber <= 0 { + req.GetPagination().ShowNumber = 50 } var res []C for i := int32(0); ; i++ { diff --git a/pkg/db/db_js.go b/pkg/db/db_js.go index 9496abe20..fa2ac9d85 100644 --- a/pkg/db/db_js.go +++ b/pkg/db/db_js.go @@ -14,10 +14,10 @@ package db -import "context" - import ( + "context" "errors" + "open_im_sdk/wasm/exec" "open_im_sdk/wasm/indexdb" ) @@ -47,7 +47,7 @@ func (i IndexDB) Close(ctx context.Context) error { } func (i IndexDB) InitDB(ctx context.Context, userID string, dataDir string) error { - _, err := indexdb.Exec(userID, dataDir) + _, err := exec.Exec(userID, dataDir) return err } diff --git a/wasm/event_listener/caller.go b/wasm/event_listener/caller.go index 43fb9513e..ede9ec6fe 100644 --- a/wasm/event_listener/caller.go +++ b/wasm/event_listener/caller.go @@ -22,6 +22,7 @@ import ( "errors" "open_im_sdk/pkg/log" "open_im_sdk/pkg/utils" + "open_im_sdk/wasm/exec" "reflect" "strconv" "strings" @@ -37,13 +38,6 @@ type Caller interface { SyncCall() (result []interface{}) } -func extractArrayBuffer(arrayBuffer js.Value) []byte { - uint8Array := js.Global().Get("Uint8Array").New(arrayBuffer) - dst := make([]byte, uint8Array.Length()) - js.CopyBytesToGo(dst, uint8Array) - return dst -} - type FuncLogic func() var ErrNotSetCallback = errors.New("not set callback to call") @@ -118,7 +112,7 @@ func (r *ReflectCall) asyncCallWithCallback() { case reflect.Int64: values = append(values, reflect.ValueOf(int64(r.arguments[i].Int()))) case reflect.Ptr: - values = append(values, reflect.ValueOf(bytes.NewBuffer(extractArrayBuffer(r.arguments[i])))) + values = append(values, reflect.ValueOf(bytes.NewBuffer(exec.ExtractArrayBuffer(r.arguments[i])))) default: log.Error("AsyncCallWithCallback", "input args type not support:", strconv.Itoa(int(typeFuncName.In(temp).Kind()))) panic("input args type not support:" + strconv.Itoa(int(typeFuncName.In(temp).Kind()))) diff --git a/wasm/exec/executor.go b/wasm/exec/executor.go new file mode 100644 index 000000000..a5f624abc --- /dev/null +++ b/wasm/exec/executor.go @@ -0,0 +1,140 @@ +// Copyright © 2023 OpenIM SDK. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build js && wasm +// +build js,wasm + +package exec + +import ( + "errors" + "open_im_sdk/pkg/log" + "open_im_sdk/pkg/utils" + "runtime" + "syscall/js" + "time" +) + +type CallbackData struct { + ErrCode int32 `json:"errCode"` + ErrMsg string `json:"errMsg"` + Data interface{} `json:"data"` +} + +const TIMEOUT = 5 + +var ErrType = errors.New("from javascript data type err") +var PrimaryKeyNull = errors.New("primary key is null err") + +var ErrTimoutFromJavaScript = errors.New("invoke javascript timeout,maybe should check function from javascript") +var jsErr = js.Global().Get("Error") + +func Exec(args ...interface{}) (output interface{}, err error) { + defer func() { + if r := recover(); r != nil { + switch x := r.(type) { + case string: + err = utils.Wrap(errors.New(x), "") + case error: + err = x + default: + err = utils.Wrap(errors.New("unknown panic"), "") + } + } + }() + thenChannel := make(chan []js.Value) + defer close(thenChannel) + catchChannel := make(chan []js.Value) + defer close(catchChannel) + pc, _, _, _ := runtime.Caller(1) + funcName := utils.CleanUpfuncName(runtime.FuncForPC(pc).Name()) + data := CallbackData{} + thenFunc := js.FuncOf(func(this js.Value, args []js.Value) interface{} { + defer func() { + if r := recover(); r != nil { + switch x := r.(type) { + case string: + err = utils.Wrap(errors.New(x), "") + case error: + err = x + default: + err = utils.Wrap(errors.New("unknown panic"), "") + } + } + }() + log.Debug("js then funcation", "=> (main go context) "+funcName+" with respone ", args[0].String()) + thenChannel <- args + return nil + }) + defer thenFunc.Release() + catchFunc := js.FuncOf(func(this js.Value, args []js.Value) interface{} { + defer func() { + if r := recover(); r != nil { + switch x := r.(type) { + case string: + err = utils.Wrap(errors.New(x), "") + case error: + err = x + default: + err = utils.Wrap(errors.New("unknown panic"), "") + } + } + }() + log.Debug("js catch funcation", "=> (main go context) "+funcName+" with respone ", args[0].String()) + catchChannel <- args + return nil + }) + defer catchFunc.Release() + js.Global().Call(utils.FirstLower(funcName), args...).Call("then", thenFunc).Call("catch", catchFunc) + select { + case result := <-thenChannel: + if len(result) > 0 { + switch result[0].Type() { + case js.TypeString: + interErr := utils.JsonStringToStruct(result[0].String(), &data) + if interErr != nil { + err = utils.Wrap(err, "return json unmarshal err from javascript") + } + case js.TypeObject: + return result[0], nil + + default: + err = errors.New("unkown return type from javascript") + } + + } else { + err = errors.New("args err,length is 0") + } + + case catch := <-catchChannel: + if catch[0].InstanceOf(jsErr) { + return nil, js.Error{Value: catch[0]} + } else { + panic("unknown javascript exception") + } + case <-time.After(TIMEOUT * time.Second): + panic(ErrTimoutFromJavaScript) + } + if data.ErrCode != 0 { + return "", errors.New(data.ErrMsg) + } + return data.Data, err +} + +func ExtractArrayBuffer(arrayBuffer js.Value) []byte { + uint8Array := js.Global().Get("Uint8Array").New(arrayBuffer) + dst := make([]byte, uint8Array.Length()) + js.CopyBytesToGo(dst, uint8Array) + return dst +} diff --git a/wasm/indexdb/black_model.go b/wasm/indexdb/black_model.go index 187c099eb..025528e5b 100644 --- a/wasm/indexdb/black_model.go +++ b/wasm/indexdb/black_model.go @@ -21,6 +21,7 @@ import ( "context" "open_im_sdk/pkg/db/model_struct" "open_im_sdk/pkg/utils" + "open_im_sdk/wasm/exec" "open_im_sdk/wasm/indexdb/temp_struct" ) @@ -34,7 +35,7 @@ func NewBlack(loginUserID string) *Black { // GetBlackListDB gets the blacklist list from the database func (i Black) GetBlackListDB(ctx context.Context) (result []*model_struct.LocalBlack, err error) { - gList, err := Exec() + gList, err := exec.Exec() if err != nil { return nil, err } else { @@ -50,14 +51,14 @@ func (i Black) GetBlackListDB(ctx context.Context) (result []*model_struct.Local } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } // GetBlackListUserID gets the list of blocked user IDs func (i Black) GetBlackListUserID(ctx context.Context) (result []string, err error) { - gList, err := Exec() + gList, err := exec.Exec() if err != nil { return nil, err } else { @@ -68,14 +69,14 @@ func (i Black) GetBlackListUserID(ctx context.Context) (result []string, err err } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } // GetBlackInfoByBlockUserID gets the information of a blocked user by their user ID func (i Black) GetBlackInfoByBlockUserID(ctx context.Context, blockUserID string) (result *model_struct.LocalBlack, err error) { - gList, err := Exec(blockUserID, i.loginUserID) + gList, err := exec.Exec(blockUserID, i.loginUserID) if err != nil { return nil, err } else { @@ -87,14 +88,14 @@ func (i Black) GetBlackInfoByBlockUserID(ctx context.Context, blockUserID string } return &temp, err } else { - return nil, ErrType + return nil, exec.ErrType } } } // GetBlackInfoList gets the information of multiple blocked users by their user IDs func (i Black) GetBlackInfoList(ctx context.Context, blockUserIDList []string) (result []*model_struct.LocalBlack, err error) { - gList, err := Exec(utils.StructToJsonString(blockUserIDList)) + gList, err := exec.Exec(utils.StructToJsonString(blockUserIDList)) if err != nil { return nil, err } else { @@ -110,14 +111,14 @@ func (i Black) GetBlackInfoList(ctx context.Context, blockUserIDList []string) ( } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } // InsertBlack inserts a new blocked user into the database func (i Black) InsertBlack(ctx context.Context, black *model_struct.LocalBlack) error { - _, err := Exec(utils.StructToJsonString(black)) + _, err := exec.Exec(utils.StructToJsonString(black)) return err } @@ -132,12 +133,12 @@ func (i Black) UpdateBlack(ctx context.Context, black *model_struct.LocalBlack) Ex: black.Ex, AttachedInfo: black.AttachedInfo, } - _, err := Exec(black.OwnerUserID, black.BlockUserID, utils.StructToJsonString(tempLocalBlack)) + _, err := exec.Exec(black.OwnerUserID, black.BlockUserID, utils.StructToJsonString(tempLocalBlack)) return err } // DeleteBlack removes a blocked user from the database func (i Black) DeleteBlack(ctx context.Context, blockUserID string) error { - _, err := Exec(blockUserID, i.loginUserID) + _, err := exec.Exec(blockUserID, i.loginUserID) return err } diff --git a/wasm/indexdb/cache_message.go b/wasm/indexdb/cache_message.go index f31e8977b..ffe95f578 100644 --- a/wasm/indexdb/cache_message.go +++ b/wasm/indexdb/cache_message.go @@ -17,7 +17,10 @@ package indexdb -import "context" +import ( + "context" + "open_im_sdk/wasm/exec" +) import ( "open_im_sdk/pkg/db/model_struct" @@ -32,11 +35,11 @@ func NewLocalCacheMessage() *LocalCacheMessage { } func (i *LocalCacheMessage) BatchInsertTempCacheMessageList(ctx context.Context, MessageList []*model_struct.TempCacheLocalChatLog) error { - _, err := Exec(utils.StructToJsonString(MessageList)) + _, err := exec.Exec(utils.StructToJsonString(MessageList)) return err } func (i *LocalCacheMessage) InsertTempCacheMessage(ctx context.Context, Message *model_struct.TempCacheLocalChatLog) error { - _, err := Exec(utils.StructToJsonString(Message)) + _, err := exec.Exec(utils.StructToJsonString(Message)) return err } diff --git a/wasm/indexdb/chat_log_model.go b/wasm/indexdb/chat_log_model.go index 4947af4cc..9332b2a4f 100644 --- a/wasm/indexdb/chat_log_model.go +++ b/wasm/indexdb/chat_log_model.go @@ -21,6 +21,7 @@ import ( "context" "open_im_sdk/pkg/db/model_struct" "open_im_sdk/pkg/utils" + "open_im_sdk/wasm/exec" "open_im_sdk/wasm/indexdb/temp_struct" ) @@ -35,7 +36,7 @@ func NewLocalChatLogs(loginUserID string) *LocalChatLogs { // GetMessage gets the message from the database func (i *LocalChatLogs) GetMessage(ctx context.Context, conversationID, clientMsgID string) (*model_struct.LocalChatLog, error) { - msg, err := Exec(conversationID, clientMsgID) + msg, err := exec.Exec(conversationID, clientMsgID) if err != nil { return nil, err } else { @@ -47,14 +48,14 @@ func (i *LocalChatLogs) GetMessage(ctx context.Context, conversationID, clientMs } return &result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } // GetSendingMessageList gets the list of messages that are being sent func (i *LocalChatLogs) GetSendingMessageList(ctx context.Context) (result []*model_struct.LocalChatLog, err error) { - msgList, err := Exec() + msgList, err := exec.Exec() if err != nil { return nil, err } else { @@ -70,7 +71,7 @@ func (i *LocalChatLogs) GetSendingMessageList(ctx context.Context) (result []*mo } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } @@ -78,7 +79,7 @@ func (i *LocalChatLogs) GetSendingMessageList(ctx context.Context) (result []*mo // UpdateMessage updates the message in the database func (i *LocalChatLogs) UpdateMessage(ctx context.Context, conversationID string, c *model_struct.LocalChatLog) error { if c.ClientMsgID == "" { - return PrimaryKeyNull + return exec.PrimaryKeyNull } tempLocalChatLog := temp_struct.LocalChatLog{ ServerMsgID: c.ServerMsgID, @@ -102,55 +103,55 @@ func (i *LocalChatLogs) UpdateMessage(ctx context.Context, conversationID string IsExternalExtensions: c.IsExternalExtensions, MsgFirstModifyTime: c.MsgFirstModifyTime, } - _, err := Exec(conversationID, c.ClientMsgID, utils.StructToJsonString(tempLocalChatLog)) + _, err := exec.Exec(conversationID, c.ClientMsgID, utils.StructToJsonString(tempLocalChatLog)) return err } // UpdateMessageStatus updates the message status in the database func (i *LocalChatLogs) BatchInsertMessageList(ctx context.Context, conversationID string, messageList []*model_struct.LocalChatLog) error { - _, err := Exec(conversationID, utils.StructToJsonString(messageList)) + _, err := exec.Exec(conversationID, utils.StructToJsonString(messageList)) return err } // InsertMessage inserts a message into the local chat log. func (i *LocalChatLogs) InsertMessage(ctx context.Context, conversationID string, message *model_struct.LocalChatLog) error { - _, err := Exec(conversationID, utils.StructToJsonString(message)) + _, err := exec.Exec(conversationID, utils.StructToJsonString(message)) return err } // UpdateColumnsMessageList updates multiple columns of a message in the local chat log. func (i *LocalChatLogs) UpdateColumnsMessageList(ctx context.Context, clientMsgIDList []string, args map[string]interface{}) error { - _, err := Exec(utils.StructToJsonString(clientMsgIDList), args) + _, err := exec.Exec(utils.StructToJsonString(clientMsgIDList), args) return err } // UpdateColumnsMessage updates a column of a message in the local chat log. func (i *LocalChatLogs) UpdateColumnsMessage(ctx context.Context, conversationID, clientMsgID string, args map[string]interface{}) error { - _, err := Exec(conversationID, clientMsgID, utils.StructToJsonString(args)) + _, err := exec.Exec(conversationID, clientMsgID, utils.StructToJsonString(args)) return err } // DeleteAllMessage deletes all messages from the local chat log. func (i *LocalChatLogs) DeleteAllMessage(ctx context.Context) error { - _, err := Exec() + _, err := exec.Exec() return err } // UpdateMessageStatusBySourceID updates the status of a message in the local chat log by its source ID. func (i *LocalChatLogs) UpdateMessageStatusBySourceID(ctx context.Context, sourceID string, status, sessionType int32) error { - _, err := Exec(sourceID, status, sessionType, i.loginUserID) + _, err := exec.Exec(sourceID, status, sessionType, i.loginUserID) return err } // UpdateMessageTimeAndStatus updates the time and status of a message in the local chat log. func (i *LocalChatLogs) UpdateMessageTimeAndStatus(ctx context.Context, conversationID, clientMsgID string, serverMsgID string, sendTime int64, status int32) error { - _, err := Exec(conversationID, clientMsgID, serverMsgID, sendTime, status) + _, err := exec.Exec(conversationID, clientMsgID, serverMsgID, sendTime, status) return err } // GetMessageList retrieves a list of messages from the local chat log. func (i *LocalChatLogs) GetMessageList(ctx context.Context, conversationID string, count int, startTime int64, isReverse bool) (result []*model_struct.LocalChatLog, err error) { - msgList, err := Exec(conversationID, count, startTime, isReverse, i.loginUserID) + msgList, err := exec.Exec(conversationID, count, startTime, isReverse, i.loginUserID) if err != nil { return nil, err } else { @@ -166,14 +167,14 @@ func (i *LocalChatLogs) GetMessageList(ctx context.Context, conversationID strin } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } // GetMessageListNoTime retrieves a list of messages from the local chat log without specifying a start time. func (i *LocalChatLogs) GetMessageListNoTime(ctx context.Context, conversationID string, count int, isReverse bool) (result []*model_struct.LocalChatLog, err error) { - msgList, err := Exec(conversationID, count, isReverse) + msgList, err := exec.Exec(conversationID, count, isReverse) if err != nil { return nil, err } else { @@ -189,20 +190,20 @@ func (i *LocalChatLogs) GetMessageListNoTime(ctx context.Context, conversationID } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } // UpdateSingleMessageHasRead updates the hasRead field of a single message in the local chat log. func (i *LocalChatLogs) UpdateSingleMessageHasRead(ctx context.Context, sendID string, msgIDList []string) error { - _, err := Exec(sendID, utils.StructToJsonString(msgIDList)) + _, err := exec.Exec(sendID, utils.StructToJsonString(msgIDList)) return err } // SearchMessageByContentType searches for messages in the local chat log by content type. func (i *LocalChatLogs) SearchMessageByContentType(ctx context.Context, contentType []int, conversationID string, startTime, endTime int64, offset, count int) (messages []*model_struct.LocalChatLog, err error) { - msgList, err := Exec(conversationID, utils.StructToJsonString(contentType), startTime, endTime, offset, count) + msgList, err := exec.Exec(conversationID, utils.StructToJsonString(contentType), startTime, endTime, offset, count) if err != nil { return nil, err } else { @@ -218,7 +219,7 @@ func (i *LocalChatLogs) SearchMessageByContentType(ctx context.Context, contentT } return messages, err } else { - return nil, ErrType + return nil, exec.ErrType } } } @@ -247,7 +248,7 @@ func (i *LocalChatLogs) SearchMessageByContentType(ctx context.Context, contentT // SearchMessageByKeyword searches for messages in the local chat log by keyword. func (i *LocalChatLogs) SearchMessageByContentTypeAndKeyword(ctx context.Context, contentType []int, conversationID string, keywordList []string, keywordListMatchType int, startTime, endTime int64) (result []*model_struct.LocalChatLog, err error) { - msgList, err := Exec(conversationID, utils.StructToJsonString(contentType), utils.StructToJsonString(keywordList), keywordListMatchType, startTime, endTime) + msgList, err := exec.Exec(conversationID, utils.StructToJsonString(contentType), utils.StructToJsonString(keywordList), keywordListMatchType, startTime, endTime) if err != nil { return nil, err } else { @@ -263,28 +264,28 @@ func (i *LocalChatLogs) SearchMessageByContentTypeAndKeyword(ctx context.Context } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } // MessageIfExists check if message exists func (i *LocalChatLogs) MessageIfExists(ctx context.Context, clientMsgID string) (bool, error) { - isExist, err := Exec(clientMsgID) + isExist, err := exec.Exec(clientMsgID) if err != nil { return false, err } else { if v, ok := isExist.(bool); ok { return v, nil } else { - return false, ErrType + return false, exec.ErrType } } } // IsExistsInErrChatLogBySeq check if message exists in error chat log by seq func (i *LocalChatLogs) IsExistsInErrChatLogBySeq(ctx context.Context, seq int64) bool { - isExist, err := Exec(seq) + isExist, err := exec.Exec(seq) if err != nil { return false } else { @@ -298,21 +299,21 @@ func (i *LocalChatLogs) IsExistsInErrChatLogBySeq(ctx context.Context, seq int64 // MessageIfExistsBySeq check if message exists by seq func (i *LocalChatLogs) MessageIfExistsBySeq(ctx context.Context, seq int64) (bool, error) { - isExist, err := Exec(seq) + isExist, err := exec.Exec(seq) if err != nil { return false, err } else { if v, ok := isExist.(bool); ok { return v, nil } else { - return false, ErrType + return false, exec.ErrType } } } // GetMultipleMessage gets multiple messages from the local chat log. func (i *LocalChatLogs) GetMultipleMessage(ctx context.Context, msgIDList []string) (result []*model_struct.LocalChatLog, err error) { - msgList, err := Exec(utils.StructToJsonString(msgIDList)) + msgList, err := exec.Exec(utils.StructToJsonString(msgIDList)) if err != nil { return nil, err } else { @@ -328,14 +329,14 @@ func (i *LocalChatLogs) GetMultipleMessage(ctx context.Context, msgIDList []stri } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } // GetLostMsgSeqList gets lost message seq list. func (i *LocalChatLogs) GetLostMsgSeqList(ctx context.Context, minSeqInSvr uint32) (result []uint32, err error) { - l, err := Exec(minSeqInSvr) + l, err := exec.Exec(minSeqInSvr) if err != nil { return nil, err } else { @@ -346,58 +347,58 @@ func (i *LocalChatLogs) GetLostMsgSeqList(ctx context.Context, minSeqInSvr uint3 } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } // GetTestMessage gets test message. func (i *LocalChatLogs) GetTestMessage(ctx context.Context, seq uint32) (*model_struct.LocalChatLog, error) { - msg, err := Exec(seq) + msg, err := exec.Exec(seq) if err != nil { return nil, err } else { if v, ok := msg.(model_struct.LocalChatLog); ok { return &v, err } else { - return nil, ErrType + return nil, exec.ErrType } } } // Update the sender's nickname in the chat logs func (i *LocalChatLogs) UpdateMsgSenderNickname(ctx context.Context, sendID, nickname string, sType int) error { - _, err := Exec(sendID, nickname, sType) + _, err := exec.Exec(sendID, nickname, sType) return err } // Update the sender's face URL in the chat logs func (i *LocalChatLogs) UpdateMsgSenderFaceURL(ctx context.Context, sendID, faceURL string, sType int) error { - _, err := Exec(sendID, faceURL, sType) + _, err := exec.Exec(sendID, faceURL, sType) return err } // Update the sender's face URL and nickname in the chat logs func (i *LocalChatLogs) UpdateMsgSenderFaceURLAndSenderNickname(ctx context.Context, conversationID, sendID, faceURL, nickname string) error { - _, err := Exec(conversationID, sendID, faceURL, nickname) + _, err := exec.Exec(conversationID, sendID, faceURL, nickname) return err } // Get the message sequence number by client message ID func (i *LocalChatLogs) GetMsgSeqByClientMsgID(ctx context.Context, clientMsgID string) (uint32, error) { - result, err := Exec(clientMsgID) + result, err := exec.Exec(clientMsgID) if err != nil { return 0, err } if v, ok := result.(float64); ok { return uint32(v), nil } - return 0, ErrType + return 0, exec.ErrType } // Search all messages by content type func (i *LocalChatLogs) SearchAllMessageByContentType(ctx context.Context, conversationID string, contentType int) (result []*model_struct.LocalChatLog, err error) { - msgList, err := Exec(conversationID, contentType) + msgList, err := exec.Exec(conversationID, contentType) if err != nil { return nil, err } else { @@ -413,14 +414,14 @@ func (i *LocalChatLogs) SearchAllMessageByContentType(ctx context.Context, conve } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } // Get the message sequence number list by group ID func (i *LocalChatLogs) GetMsgSeqListByGroupID(ctx context.Context, groupID string) (result []uint32, err error) { - l, err := Exec(groupID) + l, err := exec.Exec(groupID) if err != nil { return nil, err } else { @@ -431,14 +432,14 @@ func (i *LocalChatLogs) GetMsgSeqListByGroupID(ctx context.Context, groupID stri } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } // Get the message sequence number list by peer user ID func (i *LocalChatLogs) GetMsgSeqListByPeerUserID(ctx context.Context, userID string) (result []uint32, err error) { - l, err := Exec(userID) + l, err := exec.Exec(userID) if err != nil { return nil, err } else { @@ -449,14 +450,14 @@ func (i *LocalChatLogs) GetMsgSeqListByPeerUserID(ctx context.Context, userID st } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } // Get the message sequence number list by self user ID func (i *LocalChatLogs) GetMsgSeqListBySelfUserID(ctx context.Context, userID string) (result []uint32, err error) { - l, err := Exec(userID) + l, err := exec.Exec(userID) if err != nil { return nil, err } else { @@ -467,26 +468,26 @@ func (i *LocalChatLogs) GetMsgSeqListBySelfUserID(ctx context.Context, userID st } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } // Get the abnormal message sequence number func (i *LocalChatLogs) GetAbnormalMsgSeq(ctx context.Context) (int64, error) { - result, err := Exec() + result, err := exec.Exec() if err != nil { return 0, err } if v, ok := result.(float64); ok { return int64(v), nil } - return 0, ErrType + return 0, exec.ErrType } // Get the list of abnormal message sequence numbers func (i *LocalChatLogs) GetAbnormalMsgSeqList(ctx context.Context) (result []int64, err error) { - l, err := Exec() + l, err := exec.Exec() if err != nil { return nil, err } else { @@ -497,26 +498,26 @@ func (i *LocalChatLogs) GetAbnormalMsgSeqList(ctx context.Context) (result []int } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } // Batch insert exception messages into the chat logs func (i *LocalChatLogs) BatchInsertExceptionMsg(ctx context.Context, MessageList []*model_struct.LocalErrChatLog) error { - _, err := Exec(utils.StructToJsonString(MessageList)) + _, err := exec.Exec(utils.StructToJsonString(MessageList)) return err } // Update the message status to read in the chat logs func (i *LocalChatLogs) UpdateGroupMessageHasRead(ctx context.Context, msgIDList []string, sessionType int32) error { - _, err := Exec(utils.StructToJsonString(msgIDList), sessionType) + _, err := exec.Exec(utils.StructToJsonString(msgIDList), sessionType) return err } // Get the message by message ID func (i *LocalChatLogs) SearchMessageByKeyword(ctx context.Context, contentType []int, keywordList []string, keywordListMatchType int, conversationID string, startTime, endTime int64, offset, count int) (result []*model_struct.LocalChatLog, err error) { - msgList, err := Exec(conversationID, utils.StructToJsonString(contentType), utils.StructToJsonString(keywordList), keywordListMatchType, startTime, endTime, offset, count) + msgList, err := exec.Exec(conversationID, utils.StructToJsonString(contentType), utils.StructToJsonString(keywordList), keywordListMatchType, startTime, endTime, offset, count) if err != nil { return nil, err } else { @@ -532,28 +533,28 @@ func (i *LocalChatLogs) SearchMessageByKeyword(ctx context.Context, contentType } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } // GetSuperGroupAbnormalMsgSeq get super group abnormal msg seq func (i *LocalChatLogs) GetSuperGroupAbnormalMsgSeq(ctx context.Context, groupID string) (uint32, error) { - isExist, err := Exec(groupID) + isExist, err := exec.Exec(groupID) if err != nil { return 0, err } else { if v, ok := isExist.(uint32); ok { return v, nil } else { - return 0, ErrType + return 0, exec.ErrType } } } // GetAlreadyExistSeqList get already exist seq list func (i *LocalChatLogs) GetAlreadyExistSeqList(ctx context.Context, conversationID string, lostSeqList []int64) (result []int64, err error) { - seqList, err := Exec(conversationID, utils.StructToJsonString(lostSeqList)) + seqList, err := exec.Exec(conversationID, utils.StructToJsonString(lostSeqList)) if err != nil { return nil, err } else { @@ -564,14 +565,14 @@ func (i *LocalChatLogs) GetAlreadyExistSeqList(ctx context.Context, conversation } return result, nil } else { - return nil, ErrType + return nil, exec.ErrType } } } // GetMessagesBySeq get message by seq func (i *LocalChatLogs) GetMessageBySeq(ctx context.Context, conversationID string, seq int64) (*model_struct.LocalChatLog, error) { - msg, err := Exec(conversationID, seq) + msg, err := exec.Exec(conversationID, seq) if err != nil { return nil, err } else { @@ -583,7 +584,7 @@ func (i *LocalChatLogs) GetMessageBySeq(ctx context.Context, conversationID stri } return &result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } @@ -591,7 +592,7 @@ func (i *LocalChatLogs) GetMessageBySeq(ctx context.Context, conversationID stri // UpdateMessageBySeq update message func (i *LocalChatLogs) UpdateMessageBySeq(ctx context.Context, conversationID string, c *model_struct.LocalChatLog) error { if c.Seq == 0 { - return PrimaryKeyNull + return exec.PrimaryKeyNull } tempLocalChatLog := temp_struct.LocalChatLog{ ServerMsgID: c.ServerMsgID, @@ -615,12 +616,12 @@ func (i *LocalChatLogs) UpdateMessageBySeq(ctx context.Context, conversationID s IsExternalExtensions: c.IsExternalExtensions, MsgFirstModifyTime: c.MsgFirstModifyTime, } - _, err := Exec(conversationID, c.Seq, utils.StructToJsonString(tempLocalChatLog)) + _, err := exec.Exec(conversationID, c.Seq, utils.StructToJsonString(tempLocalChatLog)) return err } func (i *LocalChatLogs) MarkConversationMessageAsReadDB(ctx context.Context, conversationID string, msgIDs []string) (rowsAffected int64, err error) { - rows, err := Exec(conversationID, utils.StructToJsonString(msgIDs), i.loginUserID) + rows, err := exec.Exec(conversationID, utils.StructToJsonString(msgIDs), i.loginUserID) if err != nil { return 0, err } else { @@ -628,13 +629,13 @@ func (i *LocalChatLogs) MarkConversationMessageAsReadDB(ctx context.Context, con rowsAffected = int64(v) return rowsAffected, err } else { - return 0, ErrType + return 0, exec.ErrType } } } func (i *LocalChatLogs) MarkConversationMessageAsReadBySeqs(ctx context.Context, conversationID string, seqs []int64) (rowsAffected int64, err error) { - rows, err := Exec(conversationID, utils.StructToJsonString(seqs), i.loginUserID) + rows, err := exec.Exec(conversationID, utils.StructToJsonString(seqs), i.loginUserID) if err != nil { return 0, err } else { @@ -642,13 +643,13 @@ func (i *LocalChatLogs) MarkConversationMessageAsReadBySeqs(ctx context.Context, rowsAffected = int64(v) return rowsAffected, err } else { - return 0, ErrType + return 0, exec.ErrType } } } func (i *LocalChatLogs) MarkConversationAllMessageAsRead(ctx context.Context, conversationID string) (rowsAffected int64, err error) { - rows, err := Exec(conversationID, i.loginUserID) + rows, err := exec.Exec(conversationID, i.loginUserID) if err != nil { return 0, err } else { @@ -656,13 +657,13 @@ func (i *LocalChatLogs) MarkConversationAllMessageAsRead(ctx context.Context, co rowsAffected = int64(v) return rowsAffected, err } else { - return 0, ErrType + return 0, exec.ErrType } } } func (i *LocalChatLogs) GetUnreadMessage(ctx context.Context, conversationID string) (result []*model_struct.LocalChatLog, err error) { - msgs, err := Exec(conversationID, i.loginUserID) + msgs, err := exec.Exec(conversationID, i.loginUserID) if err != nil { return nil, err } else { @@ -673,13 +674,13 @@ func (i *LocalChatLogs) GetUnreadMessage(ctx context.Context, conversationID str } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalChatLogs) GetMessagesByClientMsgIDs(ctx context.Context, conversationID string, msgIDs []string) (result []*model_struct.LocalChatLog, err error) { - msgs, err := Exec(conversationID, utils.StructToJsonString(msgIDs)) + msgs, err := exec.Exec(conversationID, utils.StructToJsonString(msgIDs)) if err != nil { return nil, err } else { @@ -690,14 +691,14 @@ func (i *LocalChatLogs) GetMessagesByClientMsgIDs(ctx context.Context, conversat } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } // GetMessagesBySeqs gets messages by seqs func (i *LocalChatLogs) GetMessagesBySeqs(ctx context.Context, conversationID string, seqs []int64) (result []*model_struct.LocalChatLog, err error) { - msgs, err := Exec(conversationID, utils.StructToJsonString(seqs)) + msgs, err := exec.Exec(conversationID, utils.StructToJsonString(seqs)) if err != nil { return nil, err } else { @@ -713,14 +714,14 @@ func (i *LocalChatLogs) GetMessagesBySeqs(ctx context.Context, conversationID st } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } // GetConversationNormalMsgSeq gets the maximum seq of the session func (i *LocalChatLogs) GetConversationNormalMsgSeq(ctx context.Context, conversationID string) (int64, error) { - seq, err := Exec(conversationID) + seq, err := exec.Exec(conversationID) if err != nil { return 0, err } else { @@ -729,14 +730,14 @@ func (i *LocalChatLogs) GetConversationNormalMsgSeq(ctx context.Context, convers result = int64(v) return result, err } else { - return 0, ErrType + return 0, exec.ErrType } } } // GetConversationPeerNormalMsgSeq gets the maximum seq of the peer in the session func (i *LocalChatLogs) GetConversationPeerNormalMsgSeq(ctx context.Context, conversationID string) (int64, error) { - seq, err := Exec(conversationID) + seq, err := exec.Exec(conversationID) if err != nil { return 0, err } else { @@ -745,7 +746,7 @@ func (i *LocalChatLogs) GetConversationPeerNormalMsgSeq(ctx context.Context, con result = int64(v) return result, nil } else { - return 0, ErrType + return 0, exec.ErrType } } } @@ -758,24 +759,24 @@ func (i *LocalChatLogs) GetConversationAbnormalMsgSeq(ctx context.Context, group // DeleteConversationAllMessages deletes all messages of the session func (i *LocalChatLogs) DeleteConversationAllMessages(ctx context.Context, conversationID string) error { - _, err := Exec(conversationID) + _, err := exec.Exec(conversationID) return err } // MarkDeleteConversationAllMessages marks all messages of the session as deleted func (i *LocalChatLogs) MarkDeleteConversationAllMessages(ctx context.Context, conversationID string) error { - _, err := Exec(conversationID) + _, err := exec.Exec(conversationID) return err } // DeleteConversationMsgs deletes messages of the session func (i *LocalChatLogs) DeleteConversationMsgs(ctx context.Context, conversationID string, msgIDs []string) error { - _, err := Exec(conversationID, utils.StructToJsonString(msgIDs)) + _, err := exec.Exec(conversationID, utils.StructToJsonString(msgIDs)) return err } // DeleteConversationMsgsBySeqs deletes messages of the session func (i *LocalChatLogs) DeleteConversationMsgsBySeqs(ctx context.Context, conversationID string, seqs []int64) error { - _, err := Exec(conversationID, utils.StructToJsonString(seqs)) + _, err := exec.Exec(conversationID, utils.StructToJsonString(seqs)) return err } diff --git a/wasm/indexdb/chat_log_reaction_extension_model.go b/wasm/indexdb/chat_log_reaction_extension_model.go index 4c12051e6..48e89a81c 100644 --- a/wasm/indexdb/chat_log_reaction_extension_model.go +++ b/wasm/indexdb/chat_log_reaction_extension_model.go @@ -21,13 +21,12 @@ import ( "context" "open_im_sdk/pkg/db/model_struct" "open_im_sdk/pkg/utils" - - "github.com/OpenIMSDK/Open-IM-Server/pkg/proto/sdkws" + "open_im_sdk/wasm/exec" ) type LocalChatLogReactionExtensions struct { - ExtKey string `json:"ext_key"` - ExtVal string `json:"ext_val"` + ExtKey string `json:"ext_key"` + ExtVal string `json:"ext_val"` ExtKey2 string `json:"ext_key2"` ExtVal2 string `json:"ext_val2"` } @@ -37,7 +36,7 @@ func NewLocalChatLogReactionExtensions() *LocalChatLogReactionExtensions { } func (i *LocalChatLogReactionExtensions) GetMessageReactionExtension(ctx context.Context, clientMsgID string) (result *model_struct.LocalChatLogReactionExtensions, err error) { - msg, err := Exec(clientMsgID) + msg, err := exec.Exec(clientMsgID) if err != nil { return nil, err } else { @@ -49,25 +48,27 @@ func (i *LocalChatLogReactionExtensions) GetMessageReactionExtension(ctx context } return &result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalChatLogReactionExtensions) InsertMessageReactionExtension(ctx context.Context, messageReactionExtension *model_struct.LocalChatLogReactionExtensions) error { - _, err := Exec(utils.StructToJsonString(messageReactionExtension)) - return err -} -func (i *LocalChatLogReactionExtensions) GetAndUpdateMessageReactionExtension(ctx context.Context, clientMsgID string, m map[string]*sdkws.KeyValue) error { - _, err := Exec(clientMsgID, utils.StructToJsonString(m)) - return err -} -func (i *LocalChatLogReactionExtensions) DeleteAndUpdateMessageReactionExtension(ctx context.Context, clientMsgID string, m map[string]*sdkws.KeyValue) error { - _, err := Exec(clientMsgID, utils.StructToJsonString(m)) + _, err := exec.Exec(utils.StructToJsonString(messageReactionExtension)) return err } + +// func (i *LocalChatLogReactionExtensions) GetAndUpdateMessageReactionExtension(ctx context.Context, clientMsgID string, m map[string]*sdkws.KeyValue) error { +// _, err := exec.Exec(clientMsgID, utils.StructToJsonString(m)) +// return err +// } +// +// func (i *LocalChatLogReactionExtensions) DeleteAndUpdateMessageReactionExtension(ctx context.Context, clientMsgID string, m map[string]*sdkws.KeyValue) error { +// _, err := exec.Exec(clientMsgID, utils.StructToJsonString(m)) +// return err +// } func (i *LocalChatLogReactionExtensions) GetMultipleMessageReactionExtension(ctx context.Context, msgIDList []string) (result []*model_struct.LocalChatLogReactionExtensions, err error) { - msgReactionExtensionList, err := Exec(utils.StructToJsonString(msgIDList)) + msgReactionExtensionList, err := exec.Exec(utils.StructToJsonString(msgIDList)) if err != nil { return nil, err } else { @@ -83,15 +84,15 @@ func (i *LocalChatLogReactionExtensions) GetMultipleMessageReactionExtension(ctx } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalChatLogReactionExtensions) DeleteMessageReactionExtension(ctx context.Context, msgID string) error { - _, err := Exec(msgID) + _, err := exec.Exec(msgID) return err } func (i *LocalChatLogReactionExtensions) UpdateMessageReactionExtension(ctx context.Context, c *model_struct.LocalChatLogReactionExtensions) error { - _, err := Exec(c.ClientMsgID, utils.StructToJsonString(c)) + _, err := exec.Exec(c.ClientMsgID, utils.StructToJsonString(c)) return err } diff --git a/wasm/indexdb/conversation_model.go b/wasm/indexdb/conversation_model.go index 1333c8b26..966310b46 100644 --- a/wasm/indexdb/conversation_model.go +++ b/wasm/indexdb/conversation_model.go @@ -21,6 +21,7 @@ import ( "context" "open_im_sdk/pkg/db/model_struct" "open_im_sdk/pkg/utils" + "open_im_sdk/wasm/exec" "open_im_sdk/wasm/indexdb/temp_struct" ) @@ -32,7 +33,7 @@ func NewLocalConversations() *LocalConversations { } func (i *LocalConversations) GetAllConversationListDB(ctx context.Context) (result []*model_struct.LocalConversation, err error) { - cList, err := Exec() + cList, err := exec.Exec() if err != nil { return nil, err } else { @@ -48,13 +49,13 @@ func (i *LocalConversations) GetAllConversationListDB(ctx context.Context) (resu } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalConversations) GetConversation(ctx context.Context, conversationID string) (*model_struct.LocalConversation, error) { - c, err := Exec(conversationID) + c, err := exec.Exec(conversationID) if err != nil { return nil, err } else { @@ -66,13 +67,13 @@ func (i *LocalConversations) GetConversation(ctx context.Context, conversationID } return &result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalConversations) GetHiddenConversationList(ctx context.Context) (result []*model_struct.LocalConversation, err error) { - cList, err := Exec() + cList, err := exec.Exec() if err != nil { return nil, err } else { @@ -88,12 +89,12 @@ func (i *LocalConversations) GetHiddenConversationList(ctx context.Context) (res } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalConversations) GetAllConversations(ctx context.Context) (result []*model_struct.LocalConversation, err error) { - cList, err := Exec() + cList, err := exec.Exec() if err != nil { return nil, err } else { @@ -109,16 +110,16 @@ func (i *LocalConversations) GetAllConversations(ctx context.Context) (result [] } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalConversations) UpdateColumnsConversation(ctx context.Context, conversationID string, args map[string]interface{}) error { - _, err := Exec(conversationID, utils.StructToJsonString(args)) + _, err := exec.Exec(conversationID, utils.StructToJsonString(args)) return err } func (i *LocalConversations) GetConversationByUserID(ctx context.Context, userID string) (*model_struct.LocalConversation, error) { - c, err := Exec(userID) + c, err := exec.Exec(userID) if err != nil { return nil, err } else { @@ -130,13 +131,13 @@ func (i *LocalConversations) GetConversationByUserID(ctx context.Context, userID } return &result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalConversations) GetConversationListSplitDB(ctx context.Context, offset, count int) (result []*model_struct.LocalConversation, err error) { - cList, err := Exec(offset, count) + cList, err := exec.Exec(offset, count) if err != nil { return nil, err } else { @@ -152,29 +153,29 @@ func (i *LocalConversations) GetConversationListSplitDB(ctx context.Context, off } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalConversations) BatchInsertConversationList(ctx context.Context, conversationList []*model_struct.LocalConversation) error { - _, err := Exec(utils.StructToJsonString(conversationList)) + _, err := exec.Exec(utils.StructToJsonString(conversationList)) return err } func (i *LocalConversations) InsertConversation(ctx context.Context, conversationList *model_struct.LocalConversation) error { - _, err := Exec(utils.StructToJsonString(conversationList)) + _, err := exec.Exec(utils.StructToJsonString(conversationList)) return err } func (i *LocalConversations) DeleteConversation(ctx context.Context, conversationID string) error { - _, err := Exec(conversationID) + _, err := exec.Exec(conversationID) return err } func (i *LocalConversations) UpdateConversation(ctx context.Context, c *model_struct.LocalConversation) error { if c.ConversationID == "" { - return PrimaryKeyNull + return exec.PrimaryKeyNull } tempLocalConversation := temp_struct.LocalConversation{ ConversationType: c.ConversationType, @@ -197,13 +198,13 @@ func (i *LocalConversations) UpdateConversation(ctx context.Context, c *model_st AttachedInfo: c.AttachedInfo, Ex: c.Ex, } - _, err := Exec(c.ConversationID, utils.StructToJsonString(tempLocalConversation)) + _, err := exec.Exec(c.ConversationID, utils.StructToJsonString(tempLocalConversation)) return err } func (i *LocalConversations) UpdateConversationForSync(ctx context.Context, c *model_struct.LocalConversation) error { if c.ConversationID == "" { - return PrimaryKeyNull + return exec.PrimaryKeyNull } tempLocalConversation := temp_struct.LocalPartConversation{ RecvMsgOpt: c.RecvMsgOpt, @@ -216,7 +217,7 @@ func (i *LocalConversations) UpdateConversationForSync(ctx context.Context, c *m AttachedInfo: c.AttachedInfo, Ex: c.Ex, } - _, err := Exec(c.ConversationID, utils.StructToJsonString(tempLocalConversation)) + _, err := exec.Exec(c.ConversationID, utils.StructToJsonString(tempLocalConversation)) return err } @@ -232,68 +233,68 @@ func (i *LocalConversations) BatchUpdateConversationList(ctx context.Context, co } func (i *LocalConversations) ConversationIfExists(ctx context.Context, conversationID string) (bool, error) { - seq, err := Exec(conversationID) + seq, err := exec.Exec(conversationID) if err != nil { return false, err } else { if v, ok := seq.(bool); ok { return v, err } else { - return false, ErrType + return false, exec.ErrType } } } func (i *LocalConversations) ResetConversation(ctx context.Context, conversationID string) error { - _, err := Exec(conversationID) + _, err := exec.Exec(conversationID) return err } func (i *LocalConversations) ResetAllConversation(ctx context.Context) error { - _, err := Exec() + _, err := exec.Exec() return err } func (i *LocalConversations) ClearConversation(ctx context.Context, conversationID string) error { - _, err := Exec(conversationID) + _, err := exec.Exec(conversationID) return err } func (i *LocalConversations) ClearAllConversation(ctx context.Context) error { - _, err := Exec() + _, err := exec.Exec() return err } func (i *LocalConversations) SetConversationDraftDB(ctx context.Context, conversationID, draftText string) error { - _, err := Exec(conversationID, draftText) + _, err := exec.Exec(conversationID, draftText) return err } func (i *LocalConversations) RemoveConversationDraft(ctx context.Context, conversationID, draftText string) error { - _, err := Exec(conversationID, draftText) + _, err := exec.Exec(conversationID, draftText) return err } func (i *LocalConversations) UnPinConversation(ctx context.Context, conversationID string, isPinned int) error { - _, err := Exec(conversationID, isPinned) + _, err := exec.Exec(conversationID, isPinned) return err } func (i *LocalConversations) UpdateAllConversation(ctx context.Context, conversation *model_struct.LocalConversation) error { - _, err := Exec() + _, err := exec.Exec() return err } func (i *LocalConversations) IncrConversationUnreadCount(ctx context.Context, conversationID string) error { - _, err := Exec(conversationID) + _, err := exec.Exec(conversationID) return err } func (i *LocalConversations) DecrConversationUnreadCount(ctx context.Context, conversationID string, count int64) error { - _, err := Exec(conversationID, count) + _, err := exec.Exec(conversationID, count) return err } func (i *LocalConversations) GetTotalUnreadMsgCountDB(ctx context.Context) (totalUnreadCount int32, err error) { - count, err := Exec() + count, err := exec.Exec() if err != nil { return 0, err } else { @@ -302,18 +303,18 @@ func (i *LocalConversations) GetTotalUnreadMsgCountDB(ctx context.Context) (tota result = int32(v) return result, err } else { - return 0, ErrType + return 0, exec.ErrType } } } func (i *LocalConversations) SetMultipleConversationRecvMsgOpt(ctx context.Context, conversationIDList []string, opt int) (err error) { - _, err = Exec(utils.StructToJsonString(conversationIDList), opt) + _, err = exec.Exec(utils.StructToJsonString(conversationIDList), opt) return err } func (i *LocalConversations) GetMultipleConversationDB(ctx context.Context, conversationIDList []string) (result []*model_struct.LocalConversation, err error) { - cList, err := Exec(utils.StructToJsonString(conversationIDList)) + cList, err := exec.Exec(utils.StructToJsonString(conversationIDList)) if err != nil { return nil, err } else { @@ -329,13 +330,13 @@ func (i *LocalConversations) GetMultipleConversationDB(ctx context.Context, conv } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalConversations) GetAllSingleConversationIDList(ctx context.Context) (result []string, err error) { - conversationIDs, err := Exec() + conversationIDs, err := exec.Exec() if err != nil { return nil, err } else { @@ -346,13 +347,13 @@ func (i *LocalConversations) GetAllSingleConversationIDList(ctx context.Context) } return result, nil } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalConversations) GetAllConversationIDList(ctx context.Context) ([]string, error) { - conversationIDList, err := Exec() + conversationIDList, err := exec.Exec() if err != nil { return nil, err } else { @@ -364,7 +365,7 @@ func (i *LocalConversations) GetAllConversationIDList(ctx context.Context) ([]st } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } diff --git a/wasm/indexdb/conversation_unread_message_model.go b/wasm/indexdb/conversation_unread_message_model.go index 5f6076ce7..d77ae653f 100644 --- a/wasm/indexdb/conversation_unread_message_model.go +++ b/wasm/indexdb/conversation_unread_message_model.go @@ -17,7 +17,10 @@ package indexdb -import "context" +import ( + "context" + "open_im_sdk/wasm/exec" +) import ( "open_im_sdk/pkg/db/model_struct" @@ -35,12 +38,12 @@ func (i *LocalConversationUnreadMessages) BatchInsertConversationUnreadMessageLi if messageList == nil { return nil } - _, err := Exec(utils.StructToJsonString(messageList)) + _, err := exec.Exec(utils.StructToJsonString(messageList)) return err } func (i *LocalConversationUnreadMessages) DeleteConversationUnreadMessageList(ctx context.Context, conversationID string, sendTime int64) int64 { - deleteRows, err := Exec(conversationID, sendTime) + deleteRows, err := exec.Exec(conversationID, sendTime) if err != nil { return 0 } else { diff --git a/wasm/indexdb/friend_model.go b/wasm/indexdb/friend_model.go index 3df702bd8..08b05bf9b 100644 --- a/wasm/indexdb/friend_model.go +++ b/wasm/indexdb/friend_model.go @@ -17,7 +17,10 @@ package indexdb -import "context" +import ( + "context" + "open_im_sdk/wasm/exec" +) import ( "open_im_sdk/pkg/db/model_struct" @@ -34,12 +37,12 @@ func NewFriend(loginUserID string) *Friend { } func (i *Friend) InsertFriend(ctx context.Context, friend *model_struct.LocalFriend) error { - _, err := Exec(utils.StructToJsonString(friend)) + _, err := exec.Exec(utils.StructToJsonString(friend)) return err } func (i *Friend) DeleteFriendDB(ctx context.Context, friendUserID string) error { - _, err := Exec(friendUserID, i.loginUserID) + _, err := exec.Exec(friendUserID, i.loginUserID) return err } @@ -56,12 +59,12 @@ func (i *Friend) UpdateFriend(ctx context.Context, friend *model_struct.LocalFri Ex: friend.Ex, AttachedInfo: friend.AttachedInfo, } - _, err := Exec(utils.StructToJsonString(tempLocalFriend)) + _, err := exec.Exec(utils.StructToJsonString(tempLocalFriend)) return err } func (i *Friend) GetAllFriendList(ctx context.Context) (result []*model_struct.LocalFriend, err error) { - gList, err := Exec(i.loginUserID) + gList, err := exec.Exec(i.loginUserID) if err != nil { return nil, err } else { @@ -77,13 +80,13 @@ func (i *Friend) GetAllFriendList(ctx context.Context) (result []*model_struct.L } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *Friend) SearchFriendList(ctx context.Context, keyword string, isSearchUserID, isSearchNickname, isSearchRemark bool) (result []*model_struct.LocalFriend, err error) { - gList, err := Exec(keyword, isSearchUserID, isSearchNickname, isSearchRemark) + gList, err := exec.Exec(keyword, isSearchUserID, isSearchNickname, isSearchRemark) if err != nil { return nil, err } else { @@ -99,13 +102,13 @@ func (i *Friend) SearchFriendList(ctx context.Context, keyword string, isSearchU } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *Friend) GetFriendInfoByFriendUserID(ctx context.Context, FriendUserID string) (*model_struct.LocalFriend, error) { - c, err := Exec(FriendUserID, i.loginUserID) + c, err := exec.Exec(FriendUserID, i.loginUserID) if err != nil { return nil, err } else { @@ -117,13 +120,13 @@ func (i *Friend) GetFriendInfoByFriendUserID(ctx context.Context, FriendUserID s } return &result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *Friend) GetFriendInfoList(ctx context.Context, friendUserIDList []string) (result []*model_struct.LocalFriend, err error) { - gList, err := Exec(utils.StructToJsonString(friendUserIDList)) + gList, err := exec.Exec(utils.StructToJsonString(friendUserIDList)) if err != nil { return nil, err } else { @@ -139,12 +142,12 @@ func (i *Friend) GetFriendInfoList(ctx context.Context, friendUserIDList []strin } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *Friend) GetPageFriendList(ctx context.Context, offset, count int) (result []*model_struct.LocalFriend, err error) { - gList, err := Exec(offset, count, i.loginUserID) + gList, err := exec.Exec(offset, count, i.loginUserID) if err != nil { return nil, err } else { @@ -155,7 +158,7 @@ func (i *Friend) GetPageFriendList(ctx context.Context, offset, count int) (resu } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } diff --git a/wasm/indexdb/friend_request_model.go b/wasm/indexdb/friend_request_model.go index d51ab13ec..aee275334 100644 --- a/wasm/indexdb/friend_request_model.go +++ b/wasm/indexdb/friend_request_model.go @@ -17,7 +17,10 @@ package indexdb -import "context" +import ( + "context" + "open_im_sdk/wasm/exec" +) import ( "open_im_sdk/pkg/db/model_struct" @@ -34,12 +37,12 @@ func NewFriendRequest(loginUserID string) *FriendRequest { } func (i FriendRequest) InsertFriendRequest(ctx context.Context, friendRequest *model_struct.LocalFriendRequest) error { - _, err := Exec(utils.StructToJsonString(friendRequest)) + _, err := exec.Exec(utils.StructToJsonString(friendRequest)) return err } func (i FriendRequest) DeleteFriendRequestBothUserID(ctx context.Context, fromUserID, toUserID string) error { - _, err := Exec(fromUserID, toUserID) + _, err := exec.Exec(fromUserID, toUserID) return err } @@ -60,12 +63,12 @@ func (i FriendRequest) UpdateFriendRequest(ctx context.Context, friendRequest *m Ex: friendRequest.Ex, AttachedInfo: friendRequest.AttachedInfo, } - _, err := Exec(utils.StructToJsonString(tempLocalFriendRequest)) + _, err := exec.Exec(utils.StructToJsonString(tempLocalFriendRequest)) return err } func (i FriendRequest) GetRecvFriendApplication(ctx context.Context) (result []*model_struct.LocalFriendRequest, err error) { - gList, err := Exec(i.loginUserID) + gList, err := exec.Exec(i.loginUserID) if err != nil { return nil, err } else { @@ -81,13 +84,13 @@ func (i FriendRequest) GetRecvFriendApplication(ctx context.Context) (result []* } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i FriendRequest) GetSendFriendApplication(ctx context.Context) (result []*model_struct.LocalFriendRequest, err error) { - gList, err := Exec(i.loginUserID) + gList, err := exec.Exec(i.loginUserID) if err != nil { return nil, err } else { @@ -103,13 +106,13 @@ func (i FriendRequest) GetSendFriendApplication(ctx context.Context) (result []* } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i FriendRequest) GetFriendApplicationByBothID(ctx context.Context, fromUserID, toUserID string) (*model_struct.LocalFriendRequest, error) { - c, err := Exec(fromUserID, toUserID) + c, err := exec.Exec(fromUserID, toUserID) if err != nil { return nil, err } else { @@ -121,7 +124,7 @@ func (i FriendRequest) GetFriendApplicationByBothID(ctx context.Context, fromUse } return &result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } diff --git a/wasm/indexdb/group_member_model.go b/wasm/indexdb/group_member_model.go index 7b5ed10b8..cce22fdc7 100644 --- a/wasm/indexdb/group_member_model.go +++ b/wasm/indexdb/group_member_model.go @@ -21,6 +21,7 @@ import ( "context" "open_im_sdk/pkg/db/model_struct" "open_im_sdk/pkg/utils" + "open_im_sdk/wasm/exec" ) type LocalGroupMember struct { @@ -31,7 +32,7 @@ func NewLocalGroupMember() *LocalGroupMember { } func (i *LocalGroupMember) GetGroupMemberInfoByGroupIDUserID(ctx context.Context, groupID, userID string) (*model_struct.LocalGroupMember, error) { - member, err := Exec(groupID, userID) + member, err := exec.Exec(groupID, userID) if err != nil { return nil, err } else { @@ -43,13 +44,13 @@ func (i *LocalGroupMember) GetGroupMemberInfoByGroupIDUserID(ctx context.Context } return &temp, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalGroupMember) GetAllGroupMemberList(ctx context.Context) ([]model_struct.LocalGroupMember, error) { - member, err := Exec() + member, err := exec.Exec() if err != nil { return nil, err } else { @@ -61,13 +62,13 @@ func (i *LocalGroupMember) GetAllGroupMemberList(ctx context.Context) ([]model_s } return temp, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalGroupMember) GetAllGroupMemberUserIDList(ctx context.Context) ([]model_struct.LocalGroupMember, error) { - member, err := Exec() + member, err := exec.Exec() if err != nil { return nil, err } else { @@ -79,24 +80,24 @@ func (i *LocalGroupMember) GetAllGroupMemberUserIDList(ctx context.Context) ([]m } return temp, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalGroupMember) GetGroupMemberCount(ctx context.Context, groupID string) (int32, error) { - count, err := Exec(groupID) + count, err := exec.Exec(groupID) if err != nil { return 0, err } if v, ok := count.(float64); ok { return int32(v), nil } - return 0, ErrType + return 0, exec.ErrType } func (i *LocalGroupMember) GetGroupSomeMemberInfo(ctx context.Context, groupID string, userIDList []string) ([]*model_struct.LocalGroupMember, error) { - member, err := Exec(groupID, utils.StructToJsonString(userIDList)) + member, err := exec.Exec(groupID, utils.StructToJsonString(userIDList)) if err != nil { return nil, err } else { @@ -108,13 +109,13 @@ func (i *LocalGroupMember) GetGroupSomeMemberInfo(ctx context.Context, groupID s } return temp, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalGroupMember) GetGroupAdminID(ctx context.Context, groupID string) ([]string, error) { - IDList, err := Exec(groupID) + IDList, err := exec.Exec(groupID) if err != nil { return nil, err } @@ -126,11 +127,11 @@ func (i *LocalGroupMember) GetGroupAdminID(ctx context.Context, groupID string) } return temp, nil } - return nil, ErrType + return nil, exec.ErrType } func (i *LocalGroupMember) GetGroupMemberListByGroupID(ctx context.Context, groupID string) ([]*model_struct.LocalGroupMember, error) { - member, err := Exec(groupID) + member, err := exec.Exec(groupID) if err != nil { return nil, err } else { @@ -142,13 +143,13 @@ func (i *LocalGroupMember) GetGroupMemberListByGroupID(ctx context.Context, grou } return temp, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalGroupMember) GetGroupMemberListSplit(ctx context.Context, groupID string, filter int32, offset, count int) ([]*model_struct.LocalGroupMember, error) { - member, err := Exec(groupID, filter, offset, count) + member, err := exec.Exec(groupID, filter, offset, count) if err != nil { return nil, err } else { @@ -160,13 +161,13 @@ func (i *LocalGroupMember) GetGroupMemberListSplit(ctx context.Context, groupID } return temp, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalGroupMember) GetGroupMemberOwnerAndAdminDB(ctx context.Context, groupID string) ([]*model_struct.LocalGroupMember, error) { - member, err := Exec(groupID) + member, err := exec.Exec(groupID) if err != nil { return nil, err } else { @@ -178,13 +179,13 @@ func (i *LocalGroupMember) GetGroupMemberOwnerAndAdminDB(ctx context.Context, gr } return temp, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalGroupMember) GetGroupMemberOwner(ctx context.Context, groupID string) (*model_struct.LocalGroupMember, error) { - member, err := Exec(groupID) + member, err := exec.Exec(groupID) if err != nil { return nil, err } else { @@ -196,13 +197,13 @@ func (i *LocalGroupMember) GetGroupMemberOwner(ctx context.Context, groupID stri } return &temp, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalGroupMember) GetGroupMemberListSplitByJoinTimeFilter(ctx context.Context, groupID string, offset, count int, joinTimeBegin, joinTimeEnd int64, userIDList []string) ([]*model_struct.LocalGroupMember, error) { - member, err := Exec(groupID, offset, count, joinTimeBegin, joinTimeEnd, utils.StructToJsonString(userIDList)) + member, err := exec.Exec(groupID, offset, count, joinTimeBegin, joinTimeEnd, utils.StructToJsonString(userIDList)) if err != nil { return nil, err } else { @@ -214,13 +215,13 @@ func (i *LocalGroupMember) GetGroupMemberListSplitByJoinTimeFilter(ctx context.C } return temp, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalGroupMember) GetGroupOwnerAndAdminByGroupID(ctx context.Context, groupID string) ([]*model_struct.LocalGroupMember, error) { - member, err := Exec(groupID) + member, err := exec.Exec(groupID) if err != nil { return nil, err } else { @@ -232,13 +233,13 @@ func (i *LocalGroupMember) GetGroupOwnerAndAdminByGroupID(ctx context.Context, g } return temp, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalGroupMember) GetGroupMemberUIDListByGroupID(ctx context.Context, groupID string) (result []string, err error) { - IDList, err := Exec(groupID) + IDList, err := exec.Exec(groupID) if err != nil { return nil, err } @@ -249,41 +250,41 @@ func (i *LocalGroupMember) GetGroupMemberUIDListByGroupID(ctx context.Context, g } return result, nil } - return nil, ErrType + return nil, exec.ErrType } func (i *LocalGroupMember) InsertGroupMember(ctx context.Context, groupMember *model_struct.LocalGroupMember) error { - _, err := Exec(utils.StructToJsonString(groupMember)) + _, err := exec.Exec(utils.StructToJsonString(groupMember)) return err } func (i *LocalGroupMember) BatchInsertGroupMember(ctx context.Context, groupMemberList []*model_struct.LocalGroupMember) error { - _, err := Exec(utils.StructToJsonString(groupMemberList)) + _, err := exec.Exec(utils.StructToJsonString(groupMemberList)) return err } func (i *LocalGroupMember) DeleteGroupMember(ctx context.Context, groupID, userID string) error { - _, err := Exec(groupID, userID) + _, err := exec.Exec(groupID, userID) return err } func (i *LocalGroupMember) DeleteGroupAllMembers(ctx context.Context, groupID string) error { - _, err := Exec(groupID) + _, err := exec.Exec(groupID) return err } func (i *LocalGroupMember) UpdateGroupMember(ctx context.Context, groupMember *model_struct.LocalGroupMember) error { - _, err := Exec(utils.StructToJsonString(groupMember)) + _, err := exec.Exec(utils.StructToJsonString(groupMember)) return err } func (i *LocalGroupMember) UpdateGroupMemberField(ctx context.Context, groupID, userID string, args map[string]interface{}) error { - _, err := Exec(groupID, userID, utils.StructToJsonString(args)) + _, err := exec.Exec(groupID, userID, utils.StructToJsonString(args)) return err } func (i *LocalGroupMember) GetGroupMemberInfoIfOwnerOrAdmin(ctx context.Context) ([]*model_struct.LocalGroupMember, error) { - member, err := Exec() + member, err := exec.Exec() if err != nil { return nil, err } else { @@ -295,13 +296,13 @@ func (i *LocalGroupMember) GetGroupMemberInfoIfOwnerOrAdmin(ctx context.Context) } return temp, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalGroupMember) SearchGroupMembersDB(ctx context.Context, keyword string, groupID string, isSearchMemberNickname, isSearchUserID bool, offset, count int) (result []*model_struct.LocalGroupMember, err error) { - member, err := Exec(keyword, groupID, isSearchMemberNickname, isSearchUserID, offset, count) + member, err := exec.Exec(keyword, groupID, isSearchMemberNickname, isSearchUserID, offset, count) if err != nil { return nil, err } else { @@ -313,7 +314,7 @@ func (i *LocalGroupMember) SearchGroupMembersDB(ctx context.Context, keyword str } return temp, err } else { - return nil, ErrType + return nil, exec.ErrType } } } diff --git a/wasm/indexdb/group_model.go b/wasm/indexdb/group_model.go index f42333b0c..8d0cbd94f 100644 --- a/wasm/indexdb/group_model.go +++ b/wasm/indexdb/group_model.go @@ -17,7 +17,10 @@ package indexdb -import "context" +import ( + "context" + "open_im_sdk/wasm/exec" +) import ( "open_im_sdk/pkg/db/model_struct" @@ -31,23 +34,23 @@ func NewLocalGroups() *LocalGroups { } func (i *LocalGroups) InsertGroup(ctx context.Context, groupInfo *model_struct.LocalGroup) error { - _, err := Exec(utils.StructToJsonString(groupInfo)) + _, err := exec.Exec(utils.StructToJsonString(groupInfo)) return err } func (i *LocalGroups) DeleteGroup(ctx context.Context, groupID string) error { - _, err := Exec(groupID) + _, err := exec.Exec(groupID) return err } // 该函数需要全更新 func (i *LocalGroups) UpdateGroup(ctx context.Context, groupInfo *model_struct.LocalGroup) error { - _, err := Exec(groupInfo.GroupID, utils.StructToJsonString(groupInfo)) + _, err := exec.Exec(groupInfo.GroupID, utils.StructToJsonString(groupInfo)) return err } func (i *LocalGroups) GetJoinedGroupListDB(ctx context.Context) (result []*model_struct.LocalGroup, err error) { - gList, err := Exec() + gList, err := exec.Exec() if err != nil { return nil, err } else { @@ -63,13 +66,13 @@ func (i *LocalGroups) GetJoinedGroupListDB(ctx context.Context) (result []*model } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalGroups) GetGroupInfoByGroupID(ctx context.Context, groupID string) (*model_struct.LocalGroup, error) { - c, err := Exec(groupID) + c, err := exec.Exec(groupID) if err != nil { return nil, err } else { @@ -81,13 +84,13 @@ func (i *LocalGroups) GetGroupInfoByGroupID(ctx context.Context, groupID string) } return &result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalGroups) GetAllGroupInfoByGroupIDOrGroupName(ctx context.Context, keyword string, isSearchGroupID bool, isSearchGroupName bool) (result []*model_struct.LocalGroup, err error) { - gList, err := Exec(keyword, isSearchGroupID, isSearchGroupName) + gList, err := exec.Exec(keyword, isSearchGroupID, isSearchGroupName) if err != nil { return nil, err } else { @@ -103,22 +106,22 @@ func (i *LocalGroups) GetAllGroupInfoByGroupIDOrGroupName(ctx context.Context, k } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalGroups) AddMemberCount(ctx context.Context, groupID string) error { - _, err := Exec(groupID) + _, err := exec.Exec(groupID) return err } func (i *LocalGroups) SubtractMemberCount(ctx context.Context, groupID string) error { - _, err := Exec(groupID) + _, err := exec.Exec(groupID) return err } func (i *LocalGroups) GetGroupMemberAllGroupIDs(ctx context.Context) (result []string, err error) { - groupIDList, err := Exec() + groupIDList, err := exec.Exec() if err != nil { return nil, err } else { @@ -129,7 +132,7 @@ func (i *LocalGroups) GetGroupMemberAllGroupIDs(ctx context.Context) (result []s } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } diff --git a/wasm/indexdb/group_request.model.go b/wasm/indexdb/group_request.model.go index b7a9ef07d..d7eaad662 100644 --- a/wasm/indexdb/group_request.model.go +++ b/wasm/indexdb/group_request.model.go @@ -17,7 +17,10 @@ package indexdb -import "context" +import ( + "context" + "open_im_sdk/wasm/exec" +) import ( "open_im_sdk/pkg/db/model_struct" @@ -32,22 +35,22 @@ func NewLocalGroupRequest() *LocalGroupRequest { } func (i *LocalGroupRequest) InsertGroupRequest(ctx context.Context, groupRequest *model_struct.LocalGroupRequest) error { - _, err := Exec(utils.StructToJsonString(groupRequest)) + _, err := exec.Exec(utils.StructToJsonString(groupRequest)) return err } func (i *LocalGroupRequest) DeleteGroupRequest(ctx context.Context, groupID, userID string) error { - _, err := Exec(groupID, userID) + _, err := exec.Exec(groupID, userID) return err } func (i *LocalGroupRequest) UpdateGroupRequest(ctx context.Context, groupRequest *model_struct.LocalGroupRequest) error { - _, err := Exec(utils.StructToJsonString(groupRequest)) + _, err := exec.Exec(utils.StructToJsonString(groupRequest)) return err } func (i *LocalGroupRequest) GetSendGroupApplication(ctx context.Context) ([]*model_struct.LocalGroupRequest, error) { - result, err := Exec() + result, err := exec.Exec() if err != nil { return nil, err } @@ -58,27 +61,27 @@ func (i *LocalGroupRequest) GetSendGroupApplication(ctx context.Context) ([]*mod } return request, nil } else { - return nil, ErrType + return nil, exec.ErrType } } func (i *LocalGroupRequest) InsertAdminGroupRequest(ctx context.Context, groupRequest *model_struct.LocalAdminGroupRequest) error { - _, err := Exec(utils.StructToJsonString(groupRequest)) + _, err := exec.Exec(utils.StructToJsonString(groupRequest)) return err } func (i *LocalGroupRequest) DeleteAdminGroupRequest(ctx context.Context, groupID, userID string) error { - _, err := Exec(groupID, userID) + _, err := exec.Exec(groupID, userID) return err } func (i *LocalGroupRequest) UpdateAdminGroupRequest(ctx context.Context, groupRequest *model_struct.LocalAdminGroupRequest) error { - _, err := Exec(utils.StructToJsonString(groupRequest)) + _, err := exec.Exec(utils.StructToJsonString(groupRequest)) return err } func (i *LocalGroupRequest) GetAdminGroupApplication(ctx context.Context) ([]*model_struct.LocalAdminGroupRequest, error) { - result, err := Exec() + result, err := exec.Exec() if err != nil { return nil, err } @@ -89,6 +92,6 @@ func (i *LocalGroupRequest) GetAdminGroupApplication(ctx context.Context) ([]*mo } return request, nil } else { - return nil, ErrType + return nil, exec.ErrType } } diff --git a/wasm/indexdb/indexdb.go b/wasm/indexdb/init.go similarity index 54% rename from wasm/indexdb/indexdb.go rename to wasm/indexdb/init.go index 6b0fa6d31..b8923c48b 100644 --- a/wasm/indexdb/indexdb.go +++ b/wasm/indexdb/init.go @@ -17,15 +17,9 @@ package indexdb -import "context" - import ( - "errors" - "open_im_sdk/pkg/log" - "open_im_sdk/pkg/utils" - "runtime" - "syscall/js" - "time" + "context" + "open_im_sdk/wasm/exec" ) //1,使用wasm原生的方式,tinygo应用于go的嵌入式领域,支持的功能有限,支持go语言的子集,甚至json序列化都无法支持 @@ -55,102 +49,13 @@ type IndexDB struct { loginUserID string } -type CallbackData struct { - ErrCode int32 `json:"errCode"` - ErrMsg string `json:"errMsg"` - Data interface{} `json:"data"` -} - -const TIMEOUT = 5 - -var ErrTimoutFromJavaScript = errors.New("invoke javascript timeout,maybe should check function from javascript") -var jsErr = js.Global().Get("Error") - -func Exec(args ...interface{}) (output interface{}, err error) { - defer func() { - if r := recover(); r != nil { - switch x := r.(type) { - case string: - err = utils.Wrap(errors.New(x), "") - case error: - err = x - default: - err = utils.Wrap(errors.New("unknown panic"), "") - } - } - }() - thenChannel := make(chan []js.Value) - defer close(thenChannel) - catchChannel := make(chan []js.Value) - defer close(catchChannel) - pc, _, _, _ := runtime.Caller(1) - funcName := utils.CleanUpfuncName(runtime.FuncForPC(pc).Name()) - data := CallbackData{} - thenFunc := js.FuncOf(func(this js.Value, args []js.Value) interface{} { - defer func() { - if r := recover(); r != nil { - switch x := r.(type) { - case string: - err = utils.Wrap(errors.New(x), "") - case error: - err = x - default: - err = utils.Wrap(errors.New("unknown panic"), "") - } - } - }() - log.Debug("js then funcation", "=> (main go context) "+funcName+" with respone ", args[0].String()) - thenChannel <- args - return nil - }) - defer thenFunc.Release() - catchFunc := js.FuncOf(func(this js.Value, args []js.Value) interface{} { - defer func() { - if r := recover(); r != nil { - switch x := r.(type) { - case string: - err = utils.Wrap(errors.New(x), "") - case error: - err = x - default: - err = utils.Wrap(errors.New("unknown panic"), "") - } - } - }() - log.Debug("js catch funcation", "=> (main go context) "+funcName+" with respone ", args[0].String()) - catchChannel <- args - return nil - }) - defer catchFunc.Release() - js.Global().Call(utils.FirstLower(funcName), args...).Call("then", thenFunc).Call("catch", catchFunc) - select { - case result := <-thenChannel: - interErr := utils.JsonStringToStruct(result[0].String(), &data) - if interErr != nil { - err = utils.Wrap(err, "return json unmarshal err from javascript") - } - case catch := <-catchChannel: - if catch[0].InstanceOf(jsErr) { - return nil, js.Error{Value: catch[0]} - } else { - panic("unknown javascript exception") - } - case <-time.After(TIMEOUT * time.Second): - panic(ErrTimoutFromJavaScript) - } - if data.ErrCode != 0 { - return "", errors.New(data.ErrMsg) - } - return data.Data, err -} - func (i IndexDB) Close(ctx context.Context) error { - _, err := Exec() + _, err := exec.Exec() return err } func (i IndexDB) InitDB(ctx context.Context, userID string, dataDir string) error { - _, err := Exec(userID, dataDir) + _, err := exec.Exec(userID, dataDir) return err } diff --git a/wasm/indexdb/notification_model.go b/wasm/indexdb/notification_model.go index ed896f9a3..38d27150a 100644 --- a/wasm/indexdb/notification_model.go +++ b/wasm/indexdb/notification_model.go @@ -7,6 +7,7 @@ import ( "context" "open_im_sdk/pkg/db/model_struct" "open_im_sdk/pkg/utils" + "open_im_sdk/wasm/exec" ) type NotificationSeqs struct { @@ -17,12 +18,12 @@ func NewNotificationSeqs() *NotificationSeqs { } func (i *NotificationSeqs) SetNotificationSeq(ctx context.Context, conversationID string, seq int64) error { - _, err := Exec(conversationID, seq) + _, err := exec.Exec(conversationID, seq) return err } func (i *NotificationSeqs) GetNotificationAllSeqs(ctx context.Context) (result []*model_struct.NotificationSeqs, err error) { - gList, err := Exec() + gList, err := exec.Exec() if err != nil { return nil, err } else { @@ -33,7 +34,7 @@ func (i *NotificationSeqs) GetNotificationAllSeqs(ctx context.Context) (result [ } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } diff --git a/wasm/indexdb/super_group_chat_log_model.go b/wasm/indexdb/super_group_chat_log_model.go index 5f18b5e26..ea5e4761c 100644 --- a/wasm/indexdb/super_group_chat_log_model.go +++ b/wasm/indexdb/super_group_chat_log_model.go @@ -22,6 +22,7 @@ import ( "open_im_sdk/pkg/db/model_struct" "open_im_sdk/pkg/utils" "open_im_sdk/sdk_struct" + "open_im_sdk/wasm/exec" "open_im_sdk/wasm/indexdb/temp_struct" ) @@ -32,7 +33,7 @@ func NewLocalSuperGroupChatLogs() *LocalSuperGroupChatLogs { } func (i *LocalSuperGroupChatLogs) SuperGroupGetNormalMinSeq(ctx context.Context, groupID string) (uint32, error) { - seq, err := Exec(groupID) + seq, err := exec.Exec(groupID) if err != nil { return 0, err } else { @@ -41,13 +42,13 @@ func (i *LocalSuperGroupChatLogs) SuperGroupGetNormalMinSeq(ctx context.Context, result = uint32(v) return result, err } else { - return 0, ErrType + return 0, exec.ErrType } } } func (i *LocalSuperGroupChatLogs) SuperGroupGetMessage(ctx context.Context, message *sdk_struct.MsgStruct) (*model_struct.LocalChatLog, error) { - msg, err := Exec(message.GroupID, message.ClientMsgID) + msg, err := exec.Exec(message.GroupID, message.ClientMsgID) if err != nil { return nil, err } else { @@ -59,14 +60,14 @@ func (i *LocalSuperGroupChatLogs) SuperGroupGetMessage(ctx context.Context, mess } return &result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalSuperGroupChatLogs) SuperGroupUpdateMessage(ctx context.Context, c *model_struct.LocalChatLog) error { if c.ClientMsgID == "" { - return PrimaryKeyNull + return exec.PrimaryKeyNull } tempLocalChatLog := temp_struct.LocalChatLog{ ServerMsgID: c.ServerMsgID, @@ -90,20 +91,20 @@ func (i *LocalSuperGroupChatLogs) SuperGroupUpdateMessage(ctx context.Context, c IsExternalExtensions: c.IsExternalExtensions, MsgFirstModifyTime: c.MsgFirstModifyTime, } - _, err := Exec(c.RecvID, c.ClientMsgID, utils.StructToJsonString(tempLocalChatLog)) + _, err := exec.Exec(c.RecvID, c.ClientMsgID, utils.StructToJsonString(tempLocalChatLog)) return err } func (i *LocalSuperGroupChatLogs) SuperGroupBatchInsertMessageList(ctx context.Context, messageList []*model_struct.LocalChatLog, groupID string) error { - _, err := Exec(utils.StructToJsonString(messageList), groupID) + _, err := exec.Exec(utils.StructToJsonString(messageList), groupID) return err } func (i *LocalSuperGroupChatLogs) SuperGroupInsertMessage(ctx context.Context, message *model_struct.LocalChatLog, groupID string) error { - _, err := Exec(utils.StructToJsonString(message), groupID) + _, err := exec.Exec(utils.StructToJsonString(message), groupID) return err } func (i *LocalSuperGroupChatLogs) SuperGroupGetMultipleMessage(ctx context.Context, msgIDList []string, groupID string) (result []*model_struct.LocalChatLog, err error) { - msgList, err := Exec(utils.StructToJsonString(msgIDList), groupID) + msgList, err := exec.Exec(utils.StructToJsonString(msgIDList), groupID) if err != nil { return nil, err } else { @@ -119,16 +120,16 @@ func (i *LocalSuperGroupChatLogs) SuperGroupGetMultipleMessage(ctx context.Conte } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalSuperGroupChatLogs) SuperGroupUpdateMessageTimeAndStatus(ctx context.Context, msg *sdk_struct.MsgStruct) error { - _, err := Exec(msg.GroupID, msg.ClientMsgID, msg.ServerMsgID, msg.SendTime, msg.Status) + _, err := exec.Exec(msg.GroupID, msg.ClientMsgID, msg.ServerMsgID, msg.SendTime, msg.Status) return err } func (i *LocalSuperGroupChatLogs) SuperGroupGetMessageListNoTime(ctx context.Context, sourceID string, sessionType, count int, isReverse bool) (result []*model_struct.LocalChatLog, err error) { - msgList, err := Exec(sourceID, sessionType, count, isReverse) + msgList, err := exec.Exec(sourceID, sessionType, count, isReverse) if err != nil { return nil, err } else { @@ -144,12 +145,12 @@ func (i *LocalSuperGroupChatLogs) SuperGroupGetMessageListNoTime(ctx context.Con } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalSuperGroupChatLogs) SuperGroupGetMessageList(ctx context.Context, sourceID string, sessionType, count int, startTime int64, isReverse bool) (result []*model_struct.LocalChatLog, err error) { - msgList, err := Exec(sourceID, sessionType, count, startTime, isReverse) + msgList, err := exec.Exec(sourceID, sessionType, count, startTime, isReverse) if err != nil { return nil, err } else { @@ -165,13 +166,13 @@ func (i *LocalSuperGroupChatLogs) SuperGroupGetMessageList(ctx context.Context, } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalSuperGroupChatLogs) SuperGroupSearchMessageByKeyword(ctx context.Context, contentType []int, keywordList []string, keywordListMatchType int, sourceID string, startTime, endTime int64, sessionType, offset, count int) (result []*model_struct.LocalChatLog, err error) { - msgList, err := Exec(utils.StructToJsonString(contentType), utils.StructToJsonString(keywordList), keywordListMatchType, sourceID, startTime, endTime, sessionType, offset, count) + msgList, err := exec.Exec(utils.StructToJsonString(contentType), utils.StructToJsonString(keywordList), keywordListMatchType, sourceID, startTime, endTime, sessionType, offset, count) if err != nil { return nil, err } else { @@ -187,12 +188,12 @@ func (i *LocalSuperGroupChatLogs) SuperGroupSearchMessageByKeyword(ctx context.C } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalSuperGroupChatLogs) SuperGroupSearchAllMessageByContentType(ctx context.Context, superGroupID string, contentType int32) (result []*model_struct.LocalChatLog, err error) { - msgList, err := Exec(superGroupID, contentType) + msgList, err := exec.Exec(superGroupID, contentType) if err != nil { return nil, err } else { @@ -208,30 +209,30 @@ func (i *LocalSuperGroupChatLogs) SuperGroupSearchAllMessageByContentType(ctx co } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalSuperGroupChatLogs) InitSuperLocalErrChatLog(ctx context.Context, groupID string) { - _, _ = Exec(groupID) + _, _ = exec.Exec(groupID) } func (i *LocalSuperGroupChatLogs) SuperBatchInsertExceptionMsg(ctx context.Context, MessageList []*model_struct.LocalErrChatLog, groupID string) error { - _, err := Exec(utils.StructToJsonString(MessageList), groupID) + _, err := exec.Exec(utils.StructToJsonString(MessageList), groupID) return err } func (i *LocalSuperGroupChatLogs) InitSuperLocalChatLog(ctx context.Context, groupID string) { - _, _ = Exec(groupID) + _, _ = exec.Exec(groupID) } func (i *LocalSuperGroupChatLogs) SuperGroupDeleteAllMessage(ctx context.Context, groupID string) error { - _, err := Exec(groupID) + _, err := exec.Exec(groupID) return err } func (i *LocalSuperGroupChatLogs) SuperGroupSearchMessageByContentTypeAndKeyword(ctx context.Context, contentType []int, keywordList []string, keywordListMatchType int, startTime, endTime int64, groupID string) (result []*model_struct.LocalChatLog, err error) { - gList, err := Exec(utils.StructToJsonString(contentType), utils.StructToJsonString(keywordList), keywordListMatchType, startTime, endTime, groupID) + gList, err := exec.Exec(utils.StructToJsonString(contentType), utils.StructToJsonString(keywordList), keywordListMatchType, startTime, endTime, groupID) if err != nil { return nil, err } else { @@ -247,31 +248,31 @@ func (i *LocalSuperGroupChatLogs) SuperGroupSearchMessageByContentTypeAndKeyword } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalSuperGroupChatLogs) SuperGroupBatchUpdateMessageList(ctx context.Context, MessageList []*model_struct.LocalChatLog) error { - _, err := Exec(utils.StructToJsonString(MessageList)) + _, err := exec.Exec(utils.StructToJsonString(MessageList)) return err } func (i *LocalSuperGroupChatLogs) SuperGroupMessageIfExists(ctx context.Context, ClientMsgID string) (bool, error) { - isExist, err := Exec(ClientMsgID) + isExist, err := exec.Exec(ClientMsgID) if err != nil { return false, err } else { if v, ok := isExist.(bool); ok { return v, nil } else { - return false, ErrType + return false, exec.ErrType } } } func (i *LocalSuperGroupChatLogs) SuperGroupIsExistsInErrChatLogBySeq(ctx context.Context, seq int64) bool { - isExist, err := Exec(seq) + isExist, err := exec.Exec(seq) if err != nil { return false } else { @@ -284,20 +285,20 @@ func (i *LocalSuperGroupChatLogs) SuperGroupIsExistsInErrChatLogBySeq(ctx contex } func (i *LocalSuperGroupChatLogs) SuperGroupMessageIfExistsBySeq(ctx context.Context, seq int64) (bool, error) { - isExist, err := Exec(seq) + isExist, err := exec.Exec(seq) if err != nil { return false, err } else { if v, ok := isExist.(bool); ok { return v, nil } else { - return false, ErrType + return false, exec.ErrType } } } func (i *LocalSuperGroupChatLogs) SuperGroupGetAllUnDeleteMessageSeqList(ctx context.Context) ([]uint32, error) { - gList, err := Exec() + gList, err := exec.Exec() if err != nil { return nil, err } else { @@ -309,23 +310,23 @@ func (i *LocalSuperGroupChatLogs) SuperGroupGetAllUnDeleteMessageSeqList(ctx con } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalSuperGroupChatLogs) SuperGroupUpdateColumnsMessage(ctx context.Context, clientMsgID, groupID string, args map[string]interface{}) error { - _, err := Exec(clientMsgID, groupID, utils.StructToJsonString(args)) + _, err := exec.Exec(clientMsgID, groupID, utils.StructToJsonString(args)) return err } func (i *LocalSuperGroupChatLogs) SuperGroupUpdateMessageStatusBySourceID(ctx context.Context, sourceID string, status, sessionType int32) error { - _, err := Exec(sourceID, status, sessionType) + _, err := exec.Exec(sourceID, status, sessionType) return err } func (i *LocalSuperGroupChatLogs) SuperGroupGetSendingMessageList(ctx context.Context, groupID string) (result []*model_struct.LocalChatLog, err error) { - gList, err := Exec(groupID) + gList, err := exec.Exec(groupID) if err != nil { return nil, err } else { @@ -336,31 +337,31 @@ func (i *LocalSuperGroupChatLogs) SuperGroupGetSendingMessageList(ctx context.Co } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalSuperGroupChatLogs) SuperGroupUpdateGroupMessageHasRead(ctx context.Context, msgIDList []string, groupID string) error { - _, err := Exec(utils.StructToJsonString(msgIDList), groupID) + _, err := exec.Exec(utils.StructToJsonString(msgIDList), groupID) return err } func (i *LocalSuperGroupChatLogs) SuperGroupGetNormalMsgSeq(ctx context.Context) (uint32, error) { - seq, err := Exec() + seq, err := exec.Exec() if err != nil { return 0, err } else { if v, ok := seq.(float64); ok { return uint32(v), nil } else { - return 0, ErrType + return 0, exec.ErrType } } } func (i *LocalSuperGroupChatLogs) SuperGroupGetTestMessage(ctx context.Context, seq uint32) (*model_struct.LocalChatLog, error) { - c, err := Exec(seq) + c, err := exec.Exec(seq) if err != nil { return nil, err } else { @@ -372,41 +373,41 @@ func (i *LocalSuperGroupChatLogs) SuperGroupGetTestMessage(ctx context.Context, } return &result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalSuperGroupChatLogs) SuperGroupUpdateMsgSenderNickname(ctx context.Context, sendID, nickname string, sType int) error { - _, err := Exec(sendID, nickname, sType) + _, err := exec.Exec(sendID, nickname, sType) return err } func (i *LocalSuperGroupChatLogs) SuperGroupUpdateMsgSenderFaceURL(ctx context.Context, sendID, faceURL string, sType int) error { - _, err := Exec(sendID, faceURL, sType) + _, err := exec.Exec(sendID, faceURL, sType) return err } func (i *LocalSuperGroupChatLogs) SuperGroupUpdateMsgSenderFaceURLAndSenderNickname(ctx context.Context, sendID, faceURL, nickname string, sessionType int, groupID string) error { - _, err := Exec(sendID, faceURL, nickname, sessionType, groupID) + _, err := exec.Exec(sendID, faceURL, nickname, sessionType, groupID) return err } func (i *LocalSuperGroupChatLogs) SuperGroupGetMsgSeqByClientMsgID(ctx context.Context, clientMsgID string, groupID string) (uint32, error) { - seq, err := Exec(clientMsgID, groupID) + seq, err := exec.Exec(clientMsgID, groupID) if err != nil { return 0, err } else { if v, ok := seq.(float64); ok { return uint32(v), nil } else { - return 0, ErrType + return 0, exec.ErrType } } } func (i *LocalSuperGroupChatLogs) SuperGroupGetMsgSeqListByGroupID(ctx context.Context, groupID string) ([]uint32, error) { - gList, err := Exec(groupID) + gList, err := exec.Exec(groupID) if err != nil { return nil, err } else { @@ -418,13 +419,13 @@ func (i *LocalSuperGroupChatLogs) SuperGroupGetMsgSeqListByGroupID(ctx context.C } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalSuperGroupChatLogs) SuperGroupGetMsgSeqListByPeerUserID(ctx context.Context, userID string) ([]uint32, error) { - gList, err := Exec(userID) + gList, err := exec.Exec(userID) if err != nil { return nil, err } else { @@ -436,13 +437,13 @@ func (i *LocalSuperGroupChatLogs) SuperGroupGetMsgSeqListByPeerUserID(ctx contex } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalSuperGroupChatLogs) SuperGroupGetMsgSeqListBySelfUserID(ctx context.Context, userID string) ([]uint32, error) { - gList, err := Exec(userID) + gList, err := exec.Exec(userID) if err != nil { return nil, err } else { @@ -454,7 +455,7 @@ func (i *LocalSuperGroupChatLogs) SuperGroupGetMsgSeqListBySelfUserID(ctx contex } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } diff --git a/wasm/indexdb/super_group_model.go b/wasm/indexdb/super_group_model.go index 1d36be64a..03e8fa68b 100644 --- a/wasm/indexdb/super_group_model.go +++ b/wasm/indexdb/super_group_model.go @@ -21,6 +21,7 @@ import ( "context" "open_im_sdk/pkg/db/model_struct" "open_im_sdk/pkg/utils" + "open_im_sdk/wasm/exec" ) type LocalSuperGroup struct{} @@ -30,7 +31,7 @@ func NewLocalSuperGroup() *LocalSuperGroup { } func (i *LocalSuperGroup) GetJoinedSuperGroupList(ctx context.Context) (result []*model_struct.LocalGroup, err error) { - groupList, err := Exec() + groupList, err := exec.Exec() if err != nil { return nil, err } else { @@ -46,32 +47,32 @@ func (i *LocalSuperGroup) GetJoinedSuperGroupList(ctx context.Context) (result [ } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalSuperGroup) InsertSuperGroup(ctx context.Context, groupInfo *model_struct.LocalGroup) error { - _, err := Exec(utils.StructToJsonString(groupInfo)) + _, err := exec.Exec(utils.StructToJsonString(groupInfo)) return err } func (i *LocalSuperGroup) UpdateSuperGroup(ctx context.Context, g *model_struct.LocalGroup) error { - _, err := Exec(g.GroupID, utils.StructToJsonString(g)) + _, err := exec.Exec(g.GroupID, utils.StructToJsonString(g)) return err } func (i *LocalSuperGroup) DeleteSuperGroup(ctx context.Context, groupID string) error { - _, err := Exec(groupID) + _, err := exec.Exec(groupID) return err } func (i *LocalSuperGroup) DeleteAllSuperGroup(ctx context.Context) error { - _, err := Exec() + _, err := exec.Exec() return err } func (i *LocalSuperGroup) GetSuperGroupInfoByGroupID(ctx context.Context, groupID string) (*model_struct.LocalGroup, error) { - groupInfo, err := Exec(groupID) + groupInfo, err := exec.Exec(groupID) if err != nil { return nil, err } else { @@ -83,13 +84,13 @@ func (i *LocalSuperGroup) GetSuperGroupInfoByGroupID(ctx context.Context, groupI } return &result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (i *LocalSuperGroup) GetJoinedWorkingGroupIDList(ctx context.Context) ([]string, error) { - IDList, err := Exec() + IDList, err := exec.Exec() if err != nil { return nil, err } @@ -101,11 +102,11 @@ func (i *LocalSuperGroup) GetJoinedWorkingGroupIDList(ctx context.Context) ([]st } return temp, nil } - return nil, ErrType + return nil, exec.ErrType } func (i *LocalSuperGroup) GetJoinedWorkingGroupList(ctx context.Context) (result []*model_struct.LocalGroup, err error) { - groupList, err := Exec() + groupList, err := exec.Exec() if err != nil { return nil, err } else { @@ -121,7 +122,7 @@ func (i *LocalSuperGroup) GetJoinedWorkingGroupList(ctx context.Context) (result } return result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } diff --git a/wasm/indexdb/user_model.go b/wasm/indexdb/user_model.go index fb2a46c26..b052b0333 100644 --- a/wasm/indexdb/user_model.go +++ b/wasm/indexdb/user_model.go @@ -17,19 +17,18 @@ package indexdb -import "context" +import ( + "context" + "open_im_sdk/wasm/exec" +) import ( - "errors" "open_im_sdk/pkg/db/model_struct" "open_im_sdk/pkg/utils" "open_im_sdk/wasm/indexdb/temp_struct" "time" ) -var ErrType = errors.New("from javascript data type err") -var PrimaryKeyNull = errors.New("primary key is null err") - type LocalUsers struct { } @@ -38,7 +37,7 @@ func NewLocalUsers() *LocalUsers { } func (l *LocalUsers) GetLoginUser(ctx context.Context, userID string) (*model_struct.LocalUser, error) { - user, err := Exec(userID) + user, err := exec.Exec(userID) if err != nil { return nil, err } else { @@ -59,14 +58,14 @@ func (l *LocalUsers) GetLoginUser(ctx context.Context, userID string) (*model_st result.GlobalRecvMsgOpt = temp.GlobalRecvMsgOpt return &result, err } else { - return nil, ErrType + return nil, exec.ErrType } } } func (l *LocalUsers) UpdateLoginUser(ctx context.Context, user *model_struct.LocalUser) error { - _, err := Exec(utils.StructToJsonString(user)) + _, err := exec.Exec(utils.StructToJsonString(user)) return err } @@ -75,10 +74,10 @@ func (l *LocalUsers) UpdateLoginUserByMap(ctx context.Context, user *model_struc if t, ok := v.(time.Time); ok { args["birth_time"] = utils.TimeToString(t) } else { - return ErrType + return exec.ErrType } } - _, err := Exec(user.UserID, args) + _, err := exec.Exec(user.UserID, args) return err } @@ -92,6 +91,6 @@ func (l *LocalUsers) InsertLoginUser(ctx context.Context, user *model_struct.Loc temp.Ex = user.Ex temp.AttachedInfo = user.Ex temp.GlobalRecvMsgOpt = user.GlobalRecvMsgOpt - _, err := Exec(utils.StructToJsonString(temp)) + _, err := exec.Exec(utils.StructToJsonString(temp)) return err }