Skip to content

Commit 4cacc3f

Browse files
fix bug: friend, args error (#534)
* fix bug: args error * fix bug: args error * fix bug: add friend need update both request * fix bug: add friend need update both request
1 parent e5ab278 commit 4cacc3f

File tree

7 files changed

+29
-19
lines changed

7 files changed

+29
-19
lines changed

internal/rpc/friend/friend.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,6 @@ func (s *friendServer) GetPaginationFriendsApplyTo(
246246
req *pbfriend.GetPaginationFriendsApplyToReq,
247247
) (resp *pbfriend.GetPaginationFriendsApplyToResp, err error) {
248248
defer log.ZInfo(ctx, utils.GetFuncName()+" Return")
249-
resp = &pbfriend.GetPaginationFriendsApplyToResp{}
250249
if err := s.userRpcClient.Access(ctx, req.UserID); err != nil {
251250
return nil, err
252251
}
@@ -255,6 +254,7 @@ func (s *friendServer) GetPaginationFriendsApplyTo(
255254
if err != nil {
256255
return nil, err
257256
}
257+
resp = &pbfriend.GetPaginationFriendsApplyToResp{}
258258
resp.FriendRequests, err = convert.FriendRequestDB2Pb(ctx, friendRequests, s.userRpcClient.GetUsersInfoMap)
259259
if err != nil {
260260
return nil, err

pkg/common/constant/constant.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -291,8 +291,9 @@ const (
291291
GroupResponseAgree = 1
292292
GroupResponseRefuse = -1
293293

294-
FriendResponseAgree = 1
295-
FriendResponseRefuse = -1
294+
FriendResponseNotHandle = 0
295+
FriendResponseAgree = 1
296+
FriendResponseRefuse = -1
296297

297298
Male = 1
298299
Female = 2

pkg/common/convert/black.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ func BlackDB2Pb(
2727
blackDBs []*relation.BlackModel,
2828
f func(ctx context.Context, userIDs []string) (map[string]*sdkws.UserInfo, error),
2929
) (blackPbs []*sdk.BlackInfo, err error) {
30+
if len(blackDBs) == 0 {
31+
return nil, nil
32+
}
3033
var userIDs []string
3134
for _, blackDB := range blackDBs {
3235
userIDs = append(userIDs, blackDB.BlockUserID)

pkg/common/convert/friend.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@ func FriendsDB2Pb(
5454
friendsDB []*relation.FriendModel,
5555
getUsers func(ctx context.Context, userIDs []string) (map[string]*sdkws.UserInfo, error),
5656
) (friendsPb []*sdkws.FriendInfo, err error) {
57+
if len(friendsDB) == 0 {
58+
return nil, nil
59+
}
5760
var userID []string
5861
for _, friendDB := range friendsDB {
5962
userID = append(userID, friendDB.FriendUserID)
@@ -80,6 +83,9 @@ func FriendRequestDB2Pb(
8083
friendRequests []*relation.FriendRequestModel,
8184
getUsers func(ctx context.Context, userIDs []string) (map[string]*sdkws.UserInfo, error),
8285
) ([]*sdkws.FriendRequest, error) {
86+
if len(friendRequests) == 0 {
87+
return nil, nil
88+
}
8389
userIDMap := make(map[string]struct{})
8490
for _, friendRequest := range friendRequests {
8591
userIDMap[friendRequest.ToUserID] = struct{}{}

pkg/common/db/controller/friend.go

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,7 @@ func (f *friendDatabase) AgreeFriendRequest(
221221
friendRequest *relation.FriendRequestModel,
222222
) (err error) {
223223
return f.tx.Transaction(func(tx any) error {
224+
now := time.Now()
224225
fr, err := f.friendRequest.NewTx(tx).Take(ctx, friendRequest.FromUserID, friendRequest.ToUserID)
225226
if err != nil {
226227
return err
@@ -230,11 +231,25 @@ func (f *friendDatabase) AgreeFriendRequest(
230231
}
231232
friendRequest.HandlerUserID = mcontext.GetOpUserID(ctx)
232233
friendRequest.HandleResult = constant.FriendResponseAgree
233-
friendRequest.HandleTime = time.Now()
234+
friendRequest.HandleTime = now
234235
err = f.friendRequest.NewTx(tx).Update(ctx, friendRequest)
235236
if err != nil {
236237
return err
237238
}
239+
240+
fr2, err := f.friendRequest.NewTx(tx).Take(ctx, friendRequest.ToUserID, friendRequest.FromUserID)
241+
if err == nil && fr2.HandleResult == constant.FriendResponseNotHandle {
242+
fr2.HandlerUserID = mcontext.GetOpUserID(ctx)
243+
fr2.HandleResult = constant.FriendResponseAgree
244+
fr2.HandleTime = now
245+
err = f.friendRequest.NewTx(tx).Update(ctx, fr2)
246+
if err != nil {
247+
return err
248+
}
249+
} else if errs.Unwrap(err) != gorm.ErrRecordNotFound {
250+
return err
251+
}
252+
238253
exists, err := f.friend.NewTx(tx).FindUserState(ctx, friendRequest.FromUserID, friendRequest.ToUserID)
239254
if err != nil {
240255
return err

pkg/proto/group/group.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,6 @@ func (x *CreateGroupReq) Check() error {
2323
if x.GroupInfo == nil {
2424
return errs.ErrArgs.Wrap("groupInfo is empty")
2525
}
26-
if x.GroupInfo.OwnerUserID == "" {
27-
return errs.ErrArgs.Wrap("GroupInfo.ownerUserID")
28-
}
2926
if x.GroupInfo.GroupType > 2 || x.GroupInfo.GroupType < 0 {
3027
return errs.ErrArgs.Wrap("GroupType is invalid")
3128
}

pkg/proto/msg/msg.go

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -133,9 +133,6 @@ func (x *MarkConversationAsReadReq) Check() error {
133133
if x.ConversationID == "" {
134134
return errs.ErrArgs.Wrap("conversationID is empty")
135135
}
136-
if x.Seqs == nil {
137-
return errs.ErrArgs.Wrap("seqs is empty")
138-
}
139136
if x.UserID == "" {
140137
return errs.ErrArgs.Wrap("userID is empty")
141138
}
@@ -165,19 +162,13 @@ func (x *ClearConversationsMsgReq) Check() error {
165162
if x.UserID == "" {
166163
return errs.ErrArgs.Wrap("userID is empty")
167164
}
168-
if x.DeleteSyncOpt == nil {
169-
return errs.ErrArgs.Wrap("deleteSyncOpt is empty")
170-
}
171165
return nil
172166
}
173167

174168
func (x *UserClearAllMsgReq) Check() error {
175169
if x.UserID == "" {
176170
return errs.ErrArgs.Wrap("userID is empty")
177171
}
178-
if x.DeleteSyncOpt == nil {
179-
return errs.ErrArgs.Wrap("deleteSyncOpt is empty")
180-
}
181172
return nil
182173
}
183174

@@ -191,9 +182,6 @@ func (x *DeleteMsgsReq) Check() error {
191182
if x.Seqs == nil {
192183
return errs.ErrArgs.Wrap("seqs is empty")
193184
}
194-
if x.DeleteSyncOpt == nil {
195-
return errs.ErrArgs.Wrap("deleteSyncOpt is empty")
196-
}
197185
return nil
198186
}
199187

0 commit comments

Comments
 (0)