From 461fd5f1ff65fb343259504dcffe71329cd33c33 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Tue, 14 Feb 2023 11:49:42 +0800 Subject: [PATCH 1/4] Error code standardization --- internal/common/check/access.go | 5 ++--- internal/common/check/friend.go | 12 +++++++++++- internal/common/notification/c.go | 7 ++++--- internal/common/notification/friend.go | 3 +-- 4 files changed, 18 insertions(+), 9 deletions(-) diff --git a/internal/common/check/access.go b/internal/common/check/access.go index 71254b903..bdd42c8aa 100644 --- a/internal/common/check/access.go +++ b/internal/common/check/access.go @@ -5,11 +5,10 @@ import ( "context" ) -func Access(ctx context.Context, ownerUserID string) (err error) { - _, err = GetUsersInfo(ctx, ownerUserID) +func (u *UserCheck) Access(ctx context.Context, ownerUserID string) (err error) { + _, err = u.GetUsersInfo(ctx, ownerUserID) if err != nil { return err } return tokenverify.CheckAccessV3(ctx, ownerUserID) - } diff --git a/internal/common/check/friend.go b/internal/common/check/friend.go index c48a42931..1cc6f0389 100644 --- a/internal/common/check/friend.go +++ b/internal/common/check/friend.go @@ -1,11 +1,21 @@ package check import ( + "Open_IM/pkg/common/config" + discoveryRegistry "Open_IM/pkg/discoveryregistry" sdkws "Open_IM/pkg/proto/sdkws" "context" "errors" + "google.golang.org/grpc" ) -func GetFriendsInfo(ctx context.Context, ownerUserID, friendUserID string) (*sdkws.FriendInfo, error) { +type FriendChecker struct { + zk discoveryRegistry.SvcDiscoveryRegistry +} + +func (f *FriendChecker) GetFriendsInfo(ctx context.Context, ownerUserID, friendUserID string) (*sdkws.FriendInfo, error) { return nil, errors.New("TODO:GetUserInfo") } +func (u *FriendChecker) getConn() (*grpc.ClientConn, error) { + return u.zk.GetConn(config.Config.RpcRegisterName.OpenImFriendName) +} diff --git a/internal/common/notification/c.go b/internal/common/notification/c.go index 098bdcf56..29894f806 100644 --- a/internal/common/notification/c.go +++ b/internal/common/notification/c.go @@ -13,9 +13,10 @@ import ( ) type Check struct { - user *check.UserCheck - group *check.GroupChecker - msg *check.MsgCheck + user *check.UserCheck + group *check.GroupChecker + msg *check.MsgCheck + friend *check.FriendChecker } type NotificationMsg struct { diff --git a/internal/common/notification/friend.go b/internal/common/notification/friend.go index 7a521c329..e4d2568cf 100644 --- a/internal/common/notification/friend.go +++ b/internal/common/notification/friend.go @@ -1,7 +1,6 @@ package notification import ( - "Open_IM/internal/common/check" "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" pbFriend "Open_IM/pkg/proto/friend" @@ -112,7 +111,7 @@ func (c *Check) FriendAddedNotification(ctx context.Context, operationID, opUser friendAddedTips.OpUser.Nickname = user[0].Nickname friendAddedTips.OpUser.FaceURL = user[0].FaceURL - friend, err := check.GetFriendsInfo(ctx, fromUserID, toUserID) + friend, err := c.friend.GetFriendsInfo(ctx, fromUserID, toUserID) if err != nil { return } From 731112e61b0257d31e7f73044e522f9924c72076 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Tue, 14 Feb 2023 11:55:50 +0800 Subject: [PATCH 2/4] Error code standardization --- internal/rpc/auth/auth.go | 3 ++- internal/rpc/friend/friend.go | 12 ++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/internal/rpc/auth/auth.go b/internal/rpc/auth/auth.go index dc6dd128e..603f60c22 100644 --- a/internal/rpc/auth/auth.go +++ b/internal/rpc/auth/auth.go @@ -65,7 +65,7 @@ func (s *rpcAuth) Run() { func (s *rpcAuth) UserToken(ctx context.Context, req *pbAuth.UserTokenReq) (*pbAuth.UserTokenResp, error) { resp := pbAuth.UserTokenResp{} - if _, err := check.GetUsersInfo(ctx, req.UserID); err != nil { + if _, err := s.userCheck.GetUsersInfo(ctx, req.UserID); err != nil { return nil, err } token, err := s.CreateToken(ctx, req.UserID, constant.PlatformIDToName(int(req.PlatformID))) @@ -143,4 +143,5 @@ func (s *rpcAuth) forceKickOff(ctx context.Context, userID string, platformID in type rpcAuth struct { *rpcserver.RpcServer controller.AuthInterface + userCheck *check.UserCheck } diff --git a/internal/rpc/friend/friend.go b/internal/rpc/friend/friend.go index a73e82233..db2f357b0 100644 --- a/internal/rpc/friend/friend.go +++ b/internal/rpc/friend/friend.go @@ -150,7 +150,7 @@ func (s *friendServer) ImportFriends(ctx context.Context, req *pbFriend.ImportFr // ok func (s *friendServer) RespondFriendApply(ctx context.Context, req *pbFriend.RespondFriendApplyReq) (resp *pbFriend.RespondFriendApplyResp, err error) { resp = &pbFriend.RespondFriendApplyResp{} - if err := check.Access(ctx, req.ToUserID); err != nil { + if err := s.userCheck.Access(ctx, req.ToUserID); err != nil { return nil, err } friendRequest := relationTb.FriendRequestModel{FromUserID: req.FromUserID, ToUserID: req.ToUserID, HandleMsg: req.HandleMsg, HandleResult: req.HandleResult} @@ -176,7 +176,7 @@ func (s *friendServer) RespondFriendApply(ctx context.Context, req *pbFriend.Res // ok func (s *friendServer) DeleteFriend(ctx context.Context, req *pbFriend.DeleteFriendReq) (resp *pbFriend.DeleteFriendResp, err error) { resp = &pbFriend.DeleteFriendResp{} - if err := check.Access(ctx, req.OwnerUserID); err != nil { + if err := s.userCheck.Access(ctx, req.OwnerUserID); err != nil { return nil, err } _, err = s.FindFriendsWithError(ctx, req.OwnerUserID, []string{req.FriendUserID}) @@ -193,7 +193,7 @@ func (s *friendServer) DeleteFriend(ctx context.Context, req *pbFriend.DeleteFri // ok func (s *friendServer) SetFriendRemark(ctx context.Context, req *pbFriend.SetFriendRemarkReq) (resp *pbFriend.SetFriendRemarkResp, err error) { resp = &pbFriend.SetFriendRemarkResp{} - if err := check.Access(ctx, req.OwnerUserID); err != nil { + if err := s.userCheck.Access(ctx, req.OwnerUserID); err != nil { return nil, err } _, err = s.FindFriendsWithError(ctx, req.OwnerUserID, []string{req.FriendUserID}) @@ -210,7 +210,7 @@ func (s *friendServer) SetFriendRemark(ctx context.Context, req *pbFriend.SetFri // ok func (s *friendServer) GetDesignatedFriends(ctx context.Context, req *pbFriend.GetDesignatedFriendsReq) (resp *pbFriend.GetDesignatedFriendsResp, err error) { resp = &pbFriend.GetDesignatedFriendsResp{} - if err := check.Access(ctx, req.UserID); err != nil { + if err := s.userCheck.Access(ctx, req.UserID); err != nil { return nil, err } friends, total, err := s.FriendInterface.PageOwnerFriends(ctx, req.UserID, req.Pagination.PageNumber, req.Pagination.ShowNumber) @@ -228,7 +228,7 @@ func (s *friendServer) GetDesignatedFriends(ctx context.Context, req *pbFriend.G // ok 获取接收到的好友申请(即别人主动申请的) func (s *friendServer) GetPaginationFriendsApplyTo(ctx context.Context, req *pbFriend.GetPaginationFriendsApplyToReq) (resp *pbFriend.GetPaginationFriendsApplyToResp, err error) { resp = &pbFriend.GetPaginationFriendsApplyToResp{} - if err := check.Access(ctx, req.UserID); err != nil { + if err := s.userCheck.Access(ctx, req.UserID); err != nil { return nil, err } friendRequests, total, err := s.FriendInterface.PageFriendRequestToMe(ctx, req.UserID, req.Pagination.PageNumber, req.Pagination.ShowNumber) @@ -246,7 +246,7 @@ func (s *friendServer) GetPaginationFriendsApplyTo(ctx context.Context, req *pbF // ok 获取主动发出去的好友申请列表 func (s *friendServer) GetPaginationFriendsApplyFrom(ctx context.Context, req *pbFriend.GetPaginationFriendsApplyFromReq) (resp *pbFriend.GetPaginationFriendsApplyFromResp, err error) { resp = &pbFriend.GetPaginationFriendsApplyFromResp{} - if err := check.Access(ctx, req.UserID); err != nil { + if err := s.userCheck.Access(ctx, req.UserID); err != nil { return nil, err } friendRequests, total, err := s.FriendInterface.PageFriendRequestFromMe(ctx, req.UserID, req.Pagination.PageNumber, req.Pagination.ShowNumber) From 9eb0ee55f334d413059cdd6f6380b7c71a9943ce Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Tue, 14 Feb 2023 12:06:58 +0800 Subject: [PATCH 3/4] Error code standardization --- internal/common/check/conversation.go | 16 ++++++++++++++++ internal/common/check/friend.go | 25 ++++++++++++++++++++----- internal/common/check/msg.go | 4 ++++ internal/rpc/friend/black.go | 5 ++--- 4 files changed, 42 insertions(+), 8 deletions(-) diff --git a/internal/common/check/conversation.go b/internal/common/check/conversation.go index b56c35741..9ebb1b299 100644 --- a/internal/common/check/conversation.go +++ b/internal/common/check/conversation.go @@ -1,15 +1,31 @@ package check import ( + "Open_IM/pkg/common/config" discoveryRegistry "Open_IM/pkg/discoveryregistry" + "Open_IM/pkg/proto/conversation" pbConversation "Open_IM/pkg/proto/conversation" "context" + "google.golang.org/grpc" ) type ConversationChecker struct { zk discoveryRegistry.SvcDiscoveryRegistry } +func NewConversationChecker(zk discoveryRegistry.SvcDiscoveryRegistry) *ConversationChecker { + return &ConversationChecker{zk: zk} +} + func (c *ConversationChecker) ModifyConversationField(ctx context.Context, req *pbConversation.ModifyConversationFieldReq) (resp *pbConversation.ModifyConversationFieldResp, err error) { + cc, err := c.getConn() + if err != nil { + return nil, err + } + resp, err = conversation.NewConversationClient(cc).ModifyConversationField(ctx, req) return } + +func (c *ConversationChecker) getConn() (*grpc.ClientConn, error) { + return c.zk.GetConn(config.Config.RpcRegisterName.OpenImConversationName) +} diff --git a/internal/common/check/friend.go b/internal/common/check/friend.go index 1cc6f0389..6c258a38c 100644 --- a/internal/common/check/friend.go +++ b/internal/common/check/friend.go @@ -3,9 +3,9 @@ package check import ( "Open_IM/pkg/common/config" discoveryRegistry "Open_IM/pkg/discoveryregistry" + "Open_IM/pkg/proto/friend" sdkws "Open_IM/pkg/proto/sdkws" "context" - "errors" "google.golang.org/grpc" ) @@ -13,9 +13,24 @@ type FriendChecker struct { zk discoveryRegistry.SvcDiscoveryRegistry } -func (f *FriendChecker) GetFriendsInfo(ctx context.Context, ownerUserID, friendUserID string) (*sdkws.FriendInfo, error) { - return nil, errors.New("TODO:GetUserInfo") +func NewFriendChecker(zk discoveryRegistry.SvcDiscoveryRegistry) *FriendChecker { + return &FriendChecker{ + zk: zk, + } } -func (u *FriendChecker) getConn() (*grpc.ClientConn, error) { - return u.zk.GetConn(config.Config.RpcRegisterName.OpenImFriendName) + +func (f *FriendChecker) GetFriendsInfo(ctx context.Context, ownerUserID, friendUserID string) (resp *sdkws.FriendInfo, err error) { + cc, err := f.getConn() + if err != nil { + return nil, err + } + r, err := friend.NewFriendClient(cc).GetPaginationFriends(ctx, &friend.GetPaginationFriendsReq{OwnerUserID: ownerUserID, FriendUserIDs: []string{friendUserID}}) + if err != nil { + return nil, err + } + resp = r.FriendsInfo[0] + return +} +func (f *FriendChecker) getConn() (*grpc.ClientConn, error) { + return f.zk.GetConn(config.Config.RpcRegisterName.OpenImFriendName) } diff --git a/internal/common/check/msg.go b/internal/common/check/msg.go index c4f1dfc03..010ee1606 100644 --- a/internal/common/check/msg.go +++ b/internal/common/check/msg.go @@ -12,6 +12,10 @@ type MsgCheck struct { zk discoveryRegistry.SvcDiscoveryRegistry } +func NewMsgCheck(zk discoveryRegistry.SvcDiscoveryRegistry) *MsgCheck { + return &MsgCheck{zk: zk} +} + func (m *MsgCheck) getConn() (*grpc.ClientConn, error) { return m.zk.GetConn(config.Config.RpcRegisterName.OpenImMsgName) } diff --git a/internal/rpc/friend/black.go b/internal/rpc/friend/black.go index a77e3c267..9969fd478 100644 --- a/internal/rpc/friend/black.go +++ b/internal/rpc/friend/black.go @@ -1,7 +1,6 @@ package friend import ( - "Open_IM/internal/common/check" "Open_IM/internal/common/convert" "Open_IM/pkg/common/db/table/relation" "Open_IM/pkg/common/tokenverify" @@ -12,7 +11,7 @@ import ( func (s *friendServer) GetPaginationBlacks(ctx context.Context, req *pbFriend.GetPaginationBlacksReq) (resp *pbFriend.GetPaginationBlacksResp, err error) { resp = &pbFriend.GetPaginationBlacksResp{} - if err := check.Access(ctx, req.UserID); err != nil { + if err := s.userCheck.Access(ctx, req.UserID); err != nil { return nil, err } blacks, total, err := s.BlackInterface.FindOwnerBlacks(ctx, req.UserID, req.Pagination.PageNumber, req.Pagination.ShowNumber) @@ -40,7 +39,7 @@ func (s *friendServer) IsBlack(ctx context.Context, req *pbFriend.IsBlackReq) (* func (s *friendServer) RemoveBlack(ctx context.Context, req *pbFriend.RemoveBlackReq) (*pbFriend.RemoveBlackResp, error) { resp := &pbFriend.RemoveBlackResp{} - if err := check.Access(ctx, req.OwnerUserID); err != nil { + if err := s.userCheck.Access(ctx, req.OwnerUserID); err != nil { return nil, err } if err := s.BlackInterface.Delete(ctx, []*relation.BlackModel{{OwnerUserID: req.OwnerUserID, BlockUserID: req.BlackUserID}}); err != nil { From c2375100800483f6ad7548de72f1d2006d9de24c Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Tue, 14 Feb 2023 12:10:15 +0800 Subject: [PATCH 4/4] Error code standardization --- internal/common/notification/c.go | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/internal/common/notification/c.go b/internal/common/notification/c.go index 29894f806..52f6853b2 100644 --- a/internal/common/notification/c.go +++ b/internal/common/notification/c.go @@ -5,6 +5,7 @@ import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/tracelog" + discoveryRegistry "Open_IM/pkg/discoveryregistry" "Open_IM/pkg/proto/msg" "Open_IM/pkg/proto/sdkws" utils2 "Open_IM/pkg/utils" @@ -13,10 +14,21 @@ import ( ) type Check struct { - user *check.UserCheck - group *check.GroupChecker - msg *check.MsgCheck - friend *check.FriendChecker + user *check.UserCheck + group *check.GroupChecker + msg *check.MsgCheck + friend *check.FriendChecker + conversation *check.ConversationChecker +} + +func NewCheck(zk discoveryRegistry.SvcDiscoveryRegistry) *Check { + return &Check{ + user: check.NewUserCheck(zk), + group: check.NewGroupChecker(zk), + msg: check.NewMsgCheck(zk), + friend: check.NewFriendChecker(zk), + conversation: check.NewConversationChecker(zk), + } } type NotificationMsg struct {