Skip to content

Commit 95ef7c8

Browse files
FGadvancericey-yu
andauthored
refactor: change the login and initialization logic to prevent the SD… (#889)
* refactor: change the login and initialization logic to prevent the SDK from crashing due to being uninitialized or not logged in. Signed-off-by: Gordon <[email protected]> * fix: integ test * fix: integ test * fix: integ test * fix: integ test * refactor: change the login and initialization logic to prevent the SDK from crashing due to being uninitialized or not logged in. Signed-off-by: Gordon <[email protected]> * refactor: remove some unused functions and struct. Signed-off-by: Gordon <[email protected]> --------- Signed-off-by: Gordon <[email protected]> Co-authored-by: icey-yu <[email protected]>
1 parent 514c760 commit 95ef7c8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+554
-1070
lines changed

integration_test/internal/config/config.go

-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ func GetConf() sdk_struct.IMConfig {
2424
cf.WsAddr = WsAddr
2525
cf.DataDir = DataDir
2626
cf.LogLevel = LogLevel
27-
cf.IsExternalExtensions = true
2827
cf.PlatformID = int32(PlatformID)
2928
cf.LogFilePath = LogFilePath
3029
cf.IsLogStandardOutput = IsLogStandardOutput

integration_test/internal/manager/manager.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ func (m *MetaManager) BuildCtx(ctx context.Context) context.Context {
4545
}
4646
ctx = ccontext.WithInfo(ctx, &ccontext.GlobalConfig{
4747
Token: m.token,
48-
IMConfig: m.IMConfig,
48+
IMConfig: &m.IMConfig,
4949
})
5050
ctx = ccontext.WithOperationID(ctx, utils.OperationIDGenerator())
5151
ctx = mcontext.SetOpUserID(ctx, "admin")

integration_test/internal/pkg/sdk_user_simulator/listener.go

-9
Original file line numberDiff line numberDiff line change
@@ -58,15 +58,6 @@ func (c userCallback) OnUserStatusChanged(statusMap string) {
5858

5959
func (userCallback) OnSelfInfoUpdated(callbackData string) {
6060

61-
}
62-
func (userCallback) OnUserCommandAdd(callbackData string) {
63-
64-
}
65-
func (userCallback) OnUserCommandUpdate(callbackData string) {
66-
67-
}
68-
func (userCallback) OnUserCommandDelete(callbackData string) {
69-
7061
}
7162

7263
type SingleMessage struct {

integration_test/internal/pkg/sdk_user_simulator/user.go

+4-3
Original file line numberDiff line numberDiff line change
@@ -19,21 +19,22 @@ func GetRelativeServerTime() int64 {
1919
return utils.GetCurrentTimestampByMill() + timeOffset
2020
}
2121

22-
func InitSDK(userID string, cf sdk_struct.IMConfig) (*open_im_sdk.LoginMgr, error) {
22+
func InitSDK(userID string, cf sdk_struct.IMConfig) (*open_im_sdk.UserContext, error) {
2323
userForSDK := open_im_sdk.NewLoginMgr()
2424
var testConnListener testConnListener
2525
testConnListener.UserID = userID
26-
isInit := userForSDK.InitSDK(cf, &testConnListener)
26+
isInit := userForSDK.InitSDK(&cf, &testConnListener)
2727
if !isInit {
2828
return nil, errs.New("sdk init failed").Wrap()
2929
}
30+
userForSDK.InitResources()
3031

3132
SetListener(userForSDK, userID)
3233

3334
return userForSDK, nil
3435
}
3536

36-
func SetListener(userForSDK *open_im_sdk.LoginMgr, userID string) {
37+
func SetListener(userForSDK *open_im_sdk.UserContext, userID string) {
3738
var testConversation conversationCallBack
3839
userForSDK.SetConversationListener(&testConversation)
3940
var testUser userCallback

integration_test/internal/sdk/sdk.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ var (
1212
type TestSDK struct {
1313
UserID string
1414
Num int
15-
SDK *open_im_sdk.LoginMgr
15+
SDK *open_im_sdk.UserContext
1616
}
1717

18-
func NewTestSDK(userID string, num int, loginMgr *open_im_sdk.LoginMgr) *TestSDK {
18+
func NewTestSDK(userID string, num int, loginMgr *open_im_sdk.UserContext) *TestSDK {
1919
return &TestSDK{
2020
UserID: userID,
2121
Num: num,

internal/conversation_msg/api.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ func (c *Conversation) checkID(ctx context.Context, s *sdk_struct.MsgStruct,
181181
return nil, sdkerrs.ErrArgs
182182
}
183183
s.SendID = c.loginUserID
184-
s.SenderPlatformID = c.platformID
184+
s.SenderPlatformID = c.platform
185185
lc := &model_struct.LocalConversation{LatestMsgSendTime: s.CreateTime}
186186
//assemble messages and conversations based on single or group chat types
187187
if recvID == "" {
@@ -950,7 +950,7 @@ func (c *Conversation) initBasicInfo(ctx context.Context, message *sdk_struct.Ms
950950
message.ClientMsgID = ClientMsgID
951951
message.MsgFrom = msgFrom
952952
message.ContentType = contentType
953-
message.SenderPlatformID = c.platformID
953+
message.SenderPlatformID = c.platform
954954
return nil
955955
}
956956

internal/conversation_msg/conversation_msg.go

+19-9
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ import (
1818
"github.com/openimsdk/openim-sdk-core/v3/internal/third/file"
1919
"github.com/openimsdk/openim-sdk-core/v3/internal/user"
2020
"github.com/openimsdk/openim-sdk-core/v3/open_im_sdk_callback"
21-
"github.com/openimsdk/openim-sdk-core/v3/pkg/ccontext"
2221
"github.com/openimsdk/openim-sdk-core/v3/pkg/common"
2322
"github.com/openimsdk/openim-sdk-core/v3/pkg/constant"
2423
"github.com/openimsdk/openim-sdk-core/v3/pkg/db/db_interface"
@@ -58,7 +57,7 @@ type Conversation struct {
5857
recvCh chan common.Cmd2Value
5958
msgSyncerCh chan common.Cmd2Value
6059
loginUserID string
61-
platformID int32
60+
platform int32
6261
DataDir string
6362
relation *relation.Relation
6463
group *group.Group
@@ -79,6 +78,22 @@ type Conversation struct {
7978
typing *typing
8079
}
8180

81+
func (c *Conversation) SetDataBase(db db_interface.DataBase) {
82+
c.db = db
83+
}
84+
85+
func (c *Conversation) SetLoginUserID(loginUserID string) {
86+
c.loginUserID = loginUserID
87+
}
88+
89+
func (c *Conversation) SetPlatform(platform int32) {
90+
c.platform = platform
91+
}
92+
93+
func (c *Conversation) SetDataDir(DataDir string) {
94+
c.DataDir = DataDir
95+
}
96+
8297
func (c *Conversation) SetMsgListener(msgListener func() open_im_sdk_callback.OnAdvancedMsgListener) {
8398
c.msgListener = msgListener
8499
}
@@ -91,22 +106,17 @@ func (c *Conversation) SetBusinessListener(businessListener func() open_im_sdk_c
91106
c.businessListener = businessListener
92107
}
93108

94-
func NewConversation(ctx context.Context, longConnMgr *interaction.LongConnMgr, db db_interface.DataBase,
109+
func NewConversation(longConnMgr *interaction.LongConnMgr,
95110
recvCh, msgSyncerCh chan common.Cmd2Value, relation *relation.Relation, group *group.Group, user *user.User,
96111
file *file.File) *Conversation {
97-
info := ccontext.Info(ctx)
98-
n := &Conversation{db: db,
112+
n := &Conversation{
99113
LongConnMgr: longConnMgr,
100114
recvCh: recvCh,
101115
msgSyncerCh: msgSyncerCh,
102-
loginUserID: info.UserID(),
103-
platformID: info.PlatformID(),
104-
DataDir: info.DataDir(),
105116
relation: relation,
106117
group: group,
107118
user: user,
108119
file: file,
109-
IsExternalExtensions: info.IsExternalExtensions(),
110120
maxSeqRecorder: NewMaxSeqRecorder(),
111121
messagePullForwardEndSeqMap: cache.NewConversationSeqContextCache(),
112122
messagePullReverseEndSeqMap: cache.NewConversationSeqContextCache(),

internal/conversation_msg/notification.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,13 @@ import (
1818
"context"
1919
"encoding/json"
2020
"fmt"
21-
pconstant "github.com/openimsdk/protocol/constant"
2221
"reflect"
2322
"runtime"
2423
"sync"
2524
"time"
2625

26+
pconstant "github.com/openimsdk/protocol/constant"
27+
2728
"github.com/openimsdk/openim-sdk-core/v3/pkg/common"
2829
"github.com/openimsdk/openim-sdk-core/v3/pkg/constant"
2930
"github.com/openimsdk/openim-sdk-core/v3/pkg/db/model_struct"
@@ -99,7 +100,6 @@ func (c *Conversation) syncFlag(c2v common.Cmd2Value) {
99100
c.relation.SyncAllSelfFriendApplicationWithoutNotice,
100101
c.group.SyncAllAdminGroupApplicationWithoutNotice,
101102
c.group.SyncAllSelfGroupApplicationWithoutNotice,
102-
c.user.SyncAllCommandWithoutNotice,
103103
}
104104
runSyncFunctions(ctx, asyncNoWaitFunctions, asyncNoWait)
105105

@@ -443,7 +443,6 @@ func (c *Conversation) syncData(c2v common.Cmd2Value) {
443443
c.relation.SyncAllSelfFriendApplication,
444444
c.group.SyncAllAdminGroupApplication,
445445
c.group.SyncAllSelfGroupApplication,
446-
c.user.SyncAllCommand,
447446
c.group.SyncAllJoinedGroupsAndMembers,
448447
c.relation.IncrSyncFriends,
449448
c.IncrSyncConversations,

internal/group/api.go

-39
Original file line numberDiff line numberDiff line change
@@ -95,18 +95,6 @@ func (g *Group) DismissGroup(ctx context.Context, groupID string) error {
9595
return nil
9696
}
9797

98-
//func (g *Group) SetGroupApplyMemberFriend(ctx context.Context, groupID string, rule int32) error {
99-
// return g.SetGroupInfo(ctx, &sdkws.GroupInfoForSet{GroupID: groupID, ApplyMemberFriend: wrapperspb.Int32(rule)})
100-
//}
101-
//
102-
//func (g *Group) SetGroupLookMemberInfo(ctx context.Context, groupID string, rule int32) error {
103-
// return g.SetGroupInfo(ctx, &sdkws.GroupInfoForSet{GroupID: groupID, LookMemberInfo: wrapperspb.Int32(rule)})
104-
//}
105-
//
106-
//func (g *Group) SetGroupVerification(ctx context.Context, groupID string, verification int32) error {
107-
// return g.SetGroupInfo(ctx, &sdkws.GroupInfoForSet{GroupID: groupID, NeedVerification: wrapperspb.Int32(verification)})
108-
//}
109-
11098
func (g *Group) ChangeGroupMute(ctx context.Context, groupID string, isMute bool) (err error) {
11199
if isMute {
112100
err = g.muteGroup(ctx, groupID)
@@ -183,14 +171,6 @@ func (g *Group) SetGroupMemberInfo(ctx context.Context, groupMemberInfo *group.S
183171
return g.IncrSyncGroupAndMember(ctx, groupMemberInfo.GroupID)
184172
}
185173

186-
//func (g *Group) SetGroupMemberRoleLevel(ctx context.Context, groupID, userID string, roleLevel int) error {
187-
// return g.SetGroupMemberInfo(ctx, &group.SetGroupMemberInfo{GroupID: groupID, UserID: userID, RoleLevel: wrapperspb.Int32(int32(roleLevel))})
188-
//}
189-
//
190-
//func (g *Group) SetGroupMemberNickname(ctx context.Context, groupID, userID string, groupMemberNickname string) error {
191-
// return g.SetGroupMemberInfo(ctx, &group.SetGroupMemberInfo{GroupID: groupID, UserID: userID, Nickname: wrapperspb.String(groupMemberNickname)})
192-
//}
193-
194174
func (g *Group) GetJoinedGroupList(ctx context.Context) ([]*model_struct.LocalGroup, error) {
195175
return g.db.GetJoinedGroupListDB(ctx)
196176
}
@@ -524,22 +504,3 @@ func (g *Group) HandlerGroupApplication(ctx context.Context, req *group.GroupApp
524504
func (g *Group) GetGroupMemberNameAndFaceURL(ctx context.Context, groupID string, userIDs []string) (map[string]*model_struct.LocalGroupMember, error) {
525505
return g.GetGroupMembersInfo(ctx, groupID, userIDs)
526506
}
527-
528-
//func (g *Group) SearchGroupMembersV2(ctx context.Context, req *group.SearchGroupMemberReq) ([]*model_struct.LocalGroupMember, error) {
529-
// if err := req.Check(); err != nil {
530-
// return nil, err
531-
// }
532-
// info, err := g.db.GetGroupInfoByGroupID(ctx, req.GroupID)
533-
// if err != nil {
534-
// return nil, err
535-
// }
536-
// if info.MemberCount <= pconstant.MaxSyncPullNumber {
537-
// return g.db.SearchGroupMembersDB(ctx, req.Keyword, req.GroupID, true, false,
538-
// int((req.Pagination.PageNumber-1)*req.Pagination.ShowNumber), int(req.Pagination.ShowNumber))
539-
// }
540-
// resp, err := util.CallApi[group.SearchGroupMemberResp](ctx, constant.SearchGroupMember, req)
541-
// if err != nil {
542-
// return nil, err
543-
// }
544-
// return datautil.Slice(resp.Members, g.pbGroupMemberToLocal), nil
545-
//}

internal/group/group.go

+11-3
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,9 @@ const (
4141
groupMemberSyncLimit = 1000
4242
)
4343

44-
func NewGroup(loginUserID string, db db_interface.DataBase,
44+
func NewGroup(
4545
conversationCh chan common.Cmd2Value) *Group {
4646
g := &Group{
47-
loginUserID: loginUserID,
48-
db: db,
4947
conversationCh: conversationCh,
5048
}
5149
g.initSyncer()
@@ -311,3 +309,13 @@ func (g *Group) FetchGroupOrError(ctx context.Context, groupID string) (*model_s
311309
func (g *Group) delLocalGroupRequest(ctx context.Context, groupID, userID string) error {
312310
return g.db.DeleteGroupRequest(ctx, groupID, userID)
313311
}
312+
313+
// SetDataBase sets the DataBase field in Group struct
314+
func (g *Group) SetDataBase(db db_interface.DataBase) {
315+
g.db = db
316+
}
317+
318+
// SetLoginUserID sets the loginUserID field in Group struct
319+
func (g *Group) SetLoginUserID(loginUserID string) {
320+
g.loginUserID = loginUserID
321+
}

0 commit comments

Comments
 (0)