From d3df5c8d9c56125e63f2538799922fef5bb10418 Mon Sep 17 00:00:00 2001 From: "Xinwei Xiong (cubxxw)" <3293172751nss@gmail.com> Date: Wed, 13 Mar 2024 21:10:14 +0800 Subject: [PATCH] feat: save callbacks code --- internal/rpc/group/callback.go | 106 ++++++++++++++++--------------- internal/rpc/group/group.go | 111 +++++++++++++++++++++++++++------ pkg/common/config/config.go | 3 + 3 files changed, 152 insertions(+), 68 deletions(-) diff --git a/internal/rpc/group/callback.go b/internal/rpc/group/callback.go index f019e3a17..f18ef1c6a 100644 --- a/internal/rpc/group/callback.go +++ b/internal/rpc/group/callback.go @@ -33,9 +33,14 @@ import ( "github.com/openimsdk/open-im-server/v3/pkg/common/http" ) +type EventCallbackConfig struct { + CallbackUrl string + BeforeCreateGroup config.CallBackConfig +} + // CallbackBeforeCreateGroup callback before create group -func CallbackBeforeCreateGroup(ctx context.Context, globalConfig *config.GlobalConfig, req *group.CreateGroupReq) (err error) { - if !globalConfig.Callback.CallbackBeforeCreateGroup.Enable { +func CallbackBeforeCreateGroup(ctx context.Context, cfg *EventCallbackConfig, req *group.CreateGroupReq) (err error) { + if !cfg.BeforeCreateGroup.Enable { return nil } cbReq := &callbackstruct.CallbackBeforeCreateGroupReq{ @@ -60,9 +65,11 @@ func CallbackBeforeCreateGroup(ctx context.Context, globalConfig *config.GlobalC }) } resp := &callbackstruct.CallbackBeforeCreateGroupResp{} - if err = http.CallBackPostReturn(ctx, globalConfig.Callback.CallbackUrl, cbReq, resp, globalConfig.Callback.CallbackBeforeCreateGroup); err != nil { + + if err = http.CallBackPostReturn(ctx, cfg.CallbackUrl, cbReq, resp, cfg.BeforeCreateGroup); err != nil { return err } + utils.NotNilReplace(&req.GroupInfo.GroupID, resp.GroupID) utils.NotNilReplace(&req.GroupInfo.GroupName, resp.GroupName) utils.NotNilReplace(&req.GroupInfo.Notification, resp.Notification) @@ -78,10 +85,11 @@ func CallbackBeforeCreateGroup(ctx context.Context, globalConfig *config.GlobalC return nil } -func CallbackAfterCreateGroup(ctx context.Context, globalConfig *config.GlobalConfig, req *group.CreateGroupReq) (err error) { - if !globalConfig.Callback.CallbackAfterCreateGroup.Enable { +func CallbackAfterCreateGroup(ctx context.Context, cfg *EventCallbackConfig, req *group.CreateGroupReq) (err error) { + if !cfg.BeforeCreateGroup.Enable { return nil } + cbReq := &callbackstruct.CallbackAfterCreateGroupReq{ CallbackCommand: callbackstruct.CallbackAfterCreateGroupCommand, GroupInfo: req.GroupInfo, @@ -103,19 +111,14 @@ func CallbackAfterCreateGroup(ctx context.Context, globalConfig *config.GlobalCo }) } resp := &callbackstruct.CallbackAfterCreateGroupResp{} - if err = http.CallBackPostReturn(ctx, globalConfig.Callback.CallbackUrl, cbReq, resp, globalConfig.Callback.CallbackAfterCreateGroup); err != nil { + if err = http.CallBackPostReturn(ctx, cfg.CallbackUrl, cbReq, resp, cfg.BeforeCreateGroup); err != nil { return err } return nil } -func CallbackBeforeMemberJoinGroup( - ctx context.Context, - globalConfig *config.GlobalConfig, - groupMember *relation.GroupMemberModel, - groupEx string, -) (err error) { - if !globalConfig.Callback.CallbackBeforeMemberJoinGroup.Enable { +func CallbackBeforeMemberJoinGroup(ctx context.Context, cfg *EventCallbackConfig, groupMember *relation.GroupMemberModel, groupEx string) (err error) { + if !cfg.BeforeCreateGroup.Enable { return nil } callbackReq := &callbackstruct.CallbackBeforeMemberJoinGroupReq{ @@ -128,10 +131,10 @@ func CallbackBeforeMemberJoinGroup( resp := &callbackstruct.CallbackBeforeMemberJoinGroupResp{} err = http.CallBackPostReturn( ctx, - globalConfig.Callback.CallbackUrl, + cfg.CallbackUrl, callbackReq, resp, - globalConfig.Callback.CallbackBeforeMemberJoinGroup, + cfg.BeforeCreateGroup, ) if err != nil { return err @@ -146,10 +149,11 @@ func CallbackBeforeMemberJoinGroup( return nil } -func CallbackBeforeSetGroupMemberInfo(ctx context.Context, globalConfig *config.GlobalConfig, req *group.SetGroupMemberInfo) (err error) { - if !globalConfig.Callback.CallbackBeforeSetGroupMemberInfo.Enable { +func CallbackBeforeSetGroupMemberInfo(ctx context.Context, cfg *EventCallbackConfig, req *group.SetGroupMemberInfo) (err error) { + if !cfg.BeforeCreateGroup.Enable { return nil } + callbackReq := callbackstruct.CallbackBeforeSetGroupMemberInfoReq{ CallbackCommand: callbackstruct.CallbackBeforeSetGroupMemberInfoCommand, GroupID: req.GroupID, @@ -170,10 +174,10 @@ func CallbackBeforeSetGroupMemberInfo(ctx context.Context, globalConfig *config. resp := &callbackstruct.CallbackBeforeSetGroupMemberInfoResp{} err = http.CallBackPostReturn( ctx, - globalConfig.Callback.CallbackUrl, + cfg.CallbackUrl, callbackReq, resp, - globalConfig.Callback.CallbackBeforeSetGroupMemberInfo, + cfg.BeforeCreateGroup, ) if err != nil { return err @@ -192,8 +196,9 @@ func CallbackBeforeSetGroupMemberInfo(ctx context.Context, globalConfig *config. } return nil } -func CallbackAfterSetGroupMemberInfo(ctx context.Context, globalConfig *config.GlobalConfig, req *group.SetGroupMemberInfo) (err error) { - if !globalConfig.Callback.CallbackBeforeSetGroupMemberInfo.Enable { + +func CallbackAfterSetGroupMemberInfo(ctx context.Context, cfg *EventCallbackConfig, req *group.SetGroupMemberInfo) (err error) { + if !cfg.BeforeCreateGroup.Enable { return nil } callbackReq := callbackstruct.CallbackAfterSetGroupMemberInfoReq{ @@ -214,14 +219,14 @@ func CallbackAfterSetGroupMemberInfo(ctx context.Context, globalConfig *config.G callbackReq.Ex = &req.Ex.Value } resp := &callbackstruct.CallbackAfterSetGroupMemberInfoResp{} - if err = http.CallBackPostReturn(ctx, globalConfig.Callback.CallbackUrl, callbackReq, resp, globalConfig.Callback.CallbackAfterSetGroupMemberInfo); err != nil { + if err = http.CallBackPostReturn(ctx, cfg.CallbackUrl, callbackReq, resp, cfg.BeforeCreateGroup); err != nil { return err } return nil } -func CallbackQuitGroup(ctx context.Context, globalConfig *config.GlobalConfig, req *group.QuitGroupReq) (err error) { - if !globalConfig.Callback.CallbackQuitGroup.Enable { +func CallbackQuitGroup(ctx context.Context, cfg *EventCallbackConfig, req *group.QuitGroupReq) (err error) { + if !cfg.BeforeCreateGroup.Enable { return nil } cbReq := &callbackstruct.CallbackQuitGroupReq{ @@ -230,14 +235,14 @@ func CallbackQuitGroup(ctx context.Context, globalConfig *config.GlobalConfig, r UserID: req.UserID, } resp := &callbackstruct.CallbackQuitGroupResp{} - if err = http.CallBackPostReturn(ctx, globalConfig.Callback.CallbackUrl, cbReq, resp, globalConfig.Callback.CallbackQuitGroup); err != nil { + if err = http.CallBackPostReturn(ctx, cfg.CallbackUrl, cbReq, resp, cfg.BeforeCreateGroup); err != nil { return err } return nil } -func CallbackKillGroupMember(ctx context.Context, globalConfig *config.GlobalConfig, req *pbgroup.KickGroupMemberReq) (err error) { - if !globalConfig.Callback.CallbackKillGroupMember.Enable { +func CallbackKillGroupMember(ctx context.Context, cfg *EventCallbackConfig, req *pbgroup.KickGroupMemberReq) (err error) { + if !cfg.BeforeCreateGroup.Enable { return nil } cbReq := &callbackstruct.CallbackKillGroupMemberReq{ @@ -246,41 +251,41 @@ func CallbackKillGroupMember(ctx context.Context, globalConfig *config.GlobalCon KickedUserIDs: req.KickedUserIDs, } resp := &callbackstruct.CallbackKillGroupMemberResp{} - if err = http.CallBackPostReturn(ctx, globalConfig.Callback.CallbackUrl, cbReq, resp, globalConfig.Callback.CallbackQuitGroup); err != nil { + if err = http.CallBackPostReturn(ctx, cfg.CallbackUrl, cbReq, resp, cfg.BeforeCreateGroup); err != nil { return err } return nil } -func CallbackDismissGroup(ctx context.Context, globalConfig *config.GlobalConfig, req *callbackstruct.CallbackDisMissGroupReq) (err error) { - if !globalConfig.Callback.CallbackDismissGroup.Enable { +func CallbackDismissGroup(ctx context.Context, cfg *EventCallbackConfig, req *callbackstruct.CallbackDisMissGroupReq) (err error) { + if !cfg.BeforeCreateGroup.Enable { return nil } req.CallbackCommand = callbackstruct.CallbackDisMissGroupCommand resp := &callbackstruct.CallbackDisMissGroupResp{} - if err = http.CallBackPostReturn(ctx, globalConfig.Callback.CallbackUrl, req, resp, globalConfig.Callback.CallbackQuitGroup); err != nil { + if err = http.CallBackPostReturn(ctx, cfg.CallbackUrl, req, resp, cfg.BeforeCreateGroup); err != nil { return err } return nil } -func CallbackApplyJoinGroupBefore(ctx context.Context, globalConfig *config.GlobalConfig, req *callbackstruct.CallbackJoinGroupReq) (err error) { - if !globalConfig.Callback.CallbackBeforeJoinGroup.Enable { +func CallbackApplyJoinGroupBefore(ctx context.Context, cfg *EventCallbackConfig, req *callbackstruct.CallbackJoinGroupReq) (err error) { + if !cfg.BeforeCreateGroup.Enable { return nil } req.CallbackCommand = callbackstruct.CallbackBeforeJoinGroupCommand resp := &callbackstruct.CallbackJoinGroupResp{} - if err = http.CallBackPostReturn(ctx, globalConfig.Callback.CallbackUrl, req, resp, globalConfig.Callback.CallbackBeforeJoinGroup); err != nil { + if err = http.CallBackPostReturn(ctx, cfg.CallbackUrl, req, resp, cfg.BeforeCreateGroup); err != nil { return err } return nil } -func CallbackAfterTransferGroupOwner(ctx context.Context, globalConfig *config.GlobalConfig, req *pbgroup.TransferGroupOwnerReq) (err error) { - if !globalConfig.Callback.CallbackAfterTransferGroupOwner.Enable { +func CallbackAfterTransferGroupOwner(ctx context.Context, cfg *EventCallbackConfig, req *pbgroup.TransferGroupOwnerReq) (err error) { + if !cfg.BeforeCreateGroup.Enable { return nil } @@ -292,13 +297,13 @@ func CallbackAfterTransferGroupOwner(ctx context.Context, globalConfig *config.G } resp := &callbackstruct.CallbackTransferGroupOwnerResp{} - if err = http.CallBackPostReturn(ctx, globalConfig.Callback.CallbackUrl, cbReq, resp, globalConfig.Callback.CallbackAfterTransferGroupOwner); err != nil { + if err = http.CallBackPostReturn(ctx, cfg.CallbackUrl, cbReq, resp, cfg.BeforeCreateGroup); err != nil { return err } return nil } -func CallbackBeforeInviteUserToGroup(ctx context.Context, globalConfig *config.GlobalConfig, req *group.InviteUserToGroupReq) (err error) { - if !globalConfig.Callback.CallbackBeforeInviteUserToGroup.Enable { +func CallbackBeforeInviteUserToGroup(ctx context.Context, cfg *EventCallbackConfig, req *group.InviteUserToGroupReq) (err error) { + if !cfg.BeforeCreateGroup.Enable { return nil } @@ -313,10 +318,10 @@ func CallbackBeforeInviteUserToGroup(ctx context.Context, globalConfig *config.G resp := &callbackstruct.CallbackBeforeInviteUserToGroupResp{} err = http.CallBackPostReturn( ctx, - globalConfig.Callback.CallbackUrl, + cfg.CallbackUrl, callbackReq, resp, - globalConfig.Callback.CallbackBeforeInviteUserToGroup, + cfg.BeforeCreateGroup, ) if err != nil { @@ -330,8 +335,8 @@ func CallbackBeforeInviteUserToGroup(ctx context.Context, globalConfig *config.G return nil } -func CallbackAfterJoinGroup(ctx context.Context, globalConfig *config.GlobalConfig, req *group.JoinGroupReq) error { - if !globalConfig.Callback.CallbackAfterJoinGroup.Enable { +func CallbackAfterJoinGroup(ctx context.Context, cfg *EventCallbackConfig, req *group.JoinGroupReq) error { + if !cfg.BeforeCreateGroup.Enable { return nil } callbackReq := &callbackstruct.CallbackAfterJoinGroupReq{ @@ -343,14 +348,14 @@ func CallbackAfterJoinGroup(ctx context.Context, globalConfig *config.GlobalConf InviterUserID: req.InviterUserID, } resp := &callbackstruct.CallbackAfterJoinGroupResp{} - if err := http.CallBackPostReturn(ctx, globalConfig.Callback.CallbackUrl, callbackReq, resp, globalConfig.Callback.CallbackAfterJoinGroup); err != nil { + if err := http.CallBackPostReturn(ctx, cfg.CallbackUrl, callbackReq, resp, cfg.BeforeCreateGroup); err != nil { return err } return nil } -func CallbackBeforeSetGroupInfo(ctx context.Context, globalConfig *config.GlobalConfig, req *group.SetGroupInfoReq) error { - if !globalConfig.Callback.CallbackBeforeSetGroupInfo.Enable { +func CallbackBeforeSetGroupInfo(ctx context.Context, cfg *EventCallbackConfig, req *group.SetGroupInfoReq) error { + if !cfg.BeforeCreateGroup.Enable { return nil } callbackReq := &callbackstruct.CallbackBeforeSetGroupInfoReq{ @@ -377,7 +382,7 @@ func CallbackBeforeSetGroupInfo(ctx context.Context, globalConfig *config.Global } resp := &callbackstruct.CallbackBeforeSetGroupInfoResp{} - if err := http.CallBackPostReturn(ctx, globalConfig.Callback.CallbackUrl, callbackReq, resp, globalConfig.Callback.CallbackBeforeSetGroupInfo); err != nil { + if err := http.CallBackPostReturn(ctx, cfg.CallbackUrl, callbackReq, resp, cfg.BeforeCreateGroup); err != nil { return err } @@ -399,8 +404,9 @@ func CallbackBeforeSetGroupInfo(ctx context.Context, globalConfig *config.Global utils.NotNilReplace(&req.GroupInfoForSet.Introduction, &resp.Introduction) return nil } -func CallbackAfterSetGroupInfo(ctx context.Context, globalConfig *config.GlobalConfig, req *group.SetGroupInfoReq) error { - if !globalConfig.Callback.CallbackAfterSetGroupInfo.Enable { + +func CallbackAfterSetGroupInfo(ctx context.Context, cfg *EventCallbackConfig, req *group.SetGroupInfoReq) error { + if !cfg.BeforeCreateGroup.Enable { return nil } callbackReq := &callbackstruct.CallbackAfterSetGroupInfoReq{ @@ -424,7 +430,7 @@ func CallbackAfterSetGroupInfo(ctx context.Context, globalConfig *config.GlobalC callbackReq.ApplyMemberFriend = &req.GroupInfoForSet.ApplyMemberFriend.Value } resp := &callbackstruct.CallbackAfterSetGroupInfoResp{} - if err := http.CallBackPostReturn(ctx, globalConfig.Callback.CallbackUrl, callbackReq, resp, globalConfig.Callback.CallbackAfterSetGroupInfo); err != nil { + if err := http.CallBackPostReturn(ctx, cfg.CallbackUrl, callbackReq, resp, cfg.BeforeCreateGroup); err != nil { return err } return nil diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 88865feb6..3785c7af8 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -216,15 +216,28 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbgroup.CreateGroupR if len(userMap) != len(userIDs) { return nil, errs.ErrUserIDNotFound.Wrap("user not found") } + + config := &EventCallbackConfig{ + CallbackUrl: s.config.Callback.CallbackUrl, + BeforeCreateGroup: s.config.Callback.CallbackBeforeCreateGroup, + } + // Callback Before create Group - if err := CallbackBeforeCreateGroup(ctx, s.config, req); err != nil { + if err := CallbackBeforeCreateGroup(ctx, config, req); err != nil { return nil, err } + var groupMembers []*relationtb.GroupMemberModel group := convert.Pb2DBGroupInfo(req.GroupInfo) if err := s.GenGroupID(ctx, &group.GroupID); err != nil { return nil, err } + + beforeCreateGroupConfig := &EventCallbackConfig{ + CallbackUrl: s.config.Callback.CallbackUrl, + BeforeCreateGroup: s.config.Callback.CallbackBeforeMemberJoinGroup, + } + joinGroup := func(userID string, roleLevel int32) error { groupMember := &relationtb.GroupMemberModel{ GroupID: group.GroupID, @@ -236,7 +249,8 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbgroup.CreateGroupR JoinTime: time.Now(), MuteEndTime: time.UnixMilli(0), } - if err := CallbackBeforeMemberJoinGroup(ctx, s.config, groupMember, group.Ex); err != nil { + + if err := CallbackBeforeMemberJoinGroup(ctx, beforeCreateGroupConfig, groupMember, group.Ex); err != nil { return err } groupMembers = append(groupMembers, groupMember) @@ -259,6 +273,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbgroup.CreateGroupR return nil, err } resp := &pbgroup.CreateGroupResp{GroupInfo: &sdkws.GroupInfo{}} + resp.GroupInfo = convert.Db2PbGroupInfo(group, req.OwnerUserID, uint32(len(userIDs))) resp.GroupInfo.MemberCount = uint32(len(userIDs)) tips := &sdkws.GroupCreatedTips{ @@ -297,6 +312,9 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbgroup.CreateGroupR } s.Notification.GroupCreatedNotification(ctx, tips) } + + afterCreateGroupConfig := beforeCreateGroupConfig + reqCallBackAfter := &pbgroup.CreateGroupReq{ MemberUserIDs: userIDs, GroupInfo: resp.GroupInfo, @@ -304,7 +322,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbgroup.CreateGroupR AdminUserIDs: req.AdminUserIDs, } - if err := CallbackAfterCreateGroup(ctx, s.config, reqCallBackAfter); err != nil { + if err := CallbackAfterCreateGroup(ctx, afterCreateGroupConfig, reqCallBackAfter); err != nil { return nil, err } @@ -395,9 +413,15 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbgroup.Invite } } - if err := CallbackBeforeInviteUserToGroup(ctx, s.config, req); err != nil { + beforeInviteUserToGroupConfig := &EventCallbackConfig{ + CallbackUrl: s.config.Callback.CallbackUrl, + BeforeCreateGroup: s.config.Callback.CallbackBeforeInviteUserToGroup, + } + + if err := CallbackBeforeInviteUserToGroup(ctx, beforeInviteUserToGroupConfig, req); err != nil { return nil, err } + if group.NeedVerification == constant.AllNeedVerification { if !authverify.IsAppManagerUid(ctx, s.config) { if !(groupMember.RoleLevel == constant.GroupOwner || groupMember.RoleLevel == constant.GroupAdmin) { @@ -439,7 +463,10 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbgroup.Invite JoinTime: time.Now(), MuteEndTime: time.UnixMilli(0), } - if err := CallbackBeforeMemberJoinGroup(ctx, s.config, member, group.Ex); err != nil { + + beforeMemberJoinGroupConfig := beforeInviteUserToGroupConfig + + if err := CallbackBeforeMemberJoinGroup(ctx, beforeMemberJoinGroupConfig, member, group.Ex); err != nil { return nil, err } groupMembers = append(groupMembers, member) @@ -611,7 +638,12 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbgroup.KickGrou return nil, err } - if err := CallbackKillGroupMember(ctx, s.config, req); err != nil { + killGroupMemberConfig := &EventCallbackConfig{ + CallbackUrl: s.config.Callback.CallbackUrl, + BeforeCreateGroup: s.config.Callback.CallbackBeforeMemberJoinGroup, + } + + if err := CallbackKillGroupMember(ctx, killGroupMemberConfig, req); err != nil { return nil, err } return resp, nil @@ -781,7 +813,13 @@ func (s *groupServer) GroupApplicationResponse(ctx context.Context, req *pbgroup OperatorUserID: mcontext.GetOpUserID(ctx), Ex: groupRequest.Ex, } - if err = CallbackBeforeMemberJoinGroup(ctx, s.config, member, group.Ex); err != nil { + + beforeMemberJoinGroupConfig := &EventCallbackConfig{ + CallbackUrl: s.config.Callback.CallbackUrl, + BeforeCreateGroup: s.config.Callback.CallbackBeforeMemberJoinGroup, + } + + if err = CallbackBeforeMemberJoinGroup(ctx, beforeMemberJoinGroupConfig, member, group.Ex); err != nil { return nil, err } } @@ -829,7 +867,12 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbgroup.JoinGroupReq) Ex: req.Ex, } - if err = CallbackApplyJoinGroupBefore(ctx, s.config, reqCall); err != nil { + applyJoinGroupBeforeConfig := &EventCallbackConfig{ + CallbackUrl: s.config.Callback.CallbackUrl, + BeforeCreateGroup: s.config.Callback.CallbackBeforeMemberJoinGroup, + } + + if err = CallbackApplyJoinGroupBefore(ctx, applyJoinGroupBeforeConfig, reqCall); err != nil { return nil, err } _, err = s.db.TakeGroupMember(ctx, req.GroupID, req.InviterUserID) @@ -850,7 +893,8 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbgroup.JoinGroupReq) JoinTime: time.Now(), MuteEndTime: time.UnixMilli(0), } - if err := CallbackBeforeMemberJoinGroup(ctx, s.config, groupMember, group.Ex); err != nil { + MemberJoinGroupConfig := applyJoinGroupBeforeConfig + if err := CallbackBeforeMemberJoinGroup(ctx, MemberJoinGroupConfig, groupMember, group.Ex); err != nil { return nil, err } if err := s.db.CreateGroup(ctx, nil, []*relationtb.GroupMemberModel{groupMember}); err != nil { @@ -861,7 +905,8 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbgroup.JoinGroupReq) return nil, err } s.Notification.MemberEnterNotification(ctx, req.GroupID, req.InviterUserID) - if err = CallbackAfterJoinGroup(ctx, s.config, req); err != nil { + afterJoinGroupConfig := applyJoinGroupBeforeConfig + if err = CallbackAfterJoinGroup(ctx, afterJoinGroupConfig, req); err != nil { return nil, err } return resp, nil @@ -910,8 +955,12 @@ func (s *groupServer) QuitGroup(ctx context.Context, req *pbgroup.QuitGroupReq) return nil, err } - // callback - if err := CallbackQuitGroup(ctx, s.config, req); err != nil { + quitGroupConfig := &EventCallbackConfig{ + CallbackUrl: s.config.Callback.CallbackUrl, + BeforeCreateGroup: s.config.Callback.CallbackBeforeMemberJoinGroup, + } + + if err := CallbackQuitGroup(ctx, quitGroupConfig, req); err != nil { return nil, err } return resp, nil @@ -941,7 +990,13 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbgroup.SetGroupInf return nil, err } } - if err := CallbackBeforeSetGroupInfo(ctx, s.config, req); err != nil { + + beforeSetGroupInfoConfig := &EventCallbackConfig{ + CallbackUrl: s.config.Callback.CallbackUrl, + BeforeCreateGroup: s.config.Callback.CallbackBeforeMemberJoinGroup, + } + + if err := CallbackBeforeSetGroupInfo(ctx, beforeSetGroupInfoConfig, req); err != nil { return nil, err } group, err := s.db.TakeGroup(ctx, req.GroupInfoForSet.GroupID) @@ -1010,7 +1065,9 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbgroup.SetGroupInf if num > 0 { _ = s.Notification.GroupInfoSetNotification(ctx, tips) } - if err := CallbackAfterSetGroupInfo(ctx, s.config, req); err != nil { + + afterSetGroupInfoConfig := beforeSetGroupInfoConfig + if err := CallbackAfterSetGroupInfo(ctx, afterSetGroupInfoConfig, req); err != nil { return nil, err } return resp, nil @@ -1056,7 +1113,12 @@ func (s *groupServer) TransferGroupOwner(ctx context.Context, req *pbgroup.Trans return nil, err } - if err := CallbackAfterTransferGroupOwner(ctx, s.config, req); err != nil { + afterTransferGroupOwnerConfig := &EventCallbackConfig{ + CallbackUrl: s.config.Callback.CallbackUrl, + BeforeCreateGroup: s.config.Callback.CallbackBeforeMemberJoinGroup, + } + + if err := CallbackAfterTransferGroupOwner(ctx, afterTransferGroupOwnerConfig, req); err != nil { return nil, err } s.Notification.GroupOwnerTransferredNotification(ctx, req) @@ -1223,7 +1285,13 @@ func (s *groupServer) DismissGroup(ctx context.Context, req *pbgroup.DismissGrou MembersID: membersID, GroupType: string(group.GroupType), } - if err := CallbackDismissGroup(ctx, s.config, reqCall); err != nil { + + dismissGroupConfig := &EventCallbackConfig{ + CallbackUrl: s.config.Callback.CallbackUrl, + BeforeCreateGroup: s.config.Callback.CallbackBeforeMemberJoinGroup, + } + + if err := CallbackDismissGroup(ctx, dismissGroupConfig, reqCall); err != nil { return nil, err } @@ -1414,8 +1482,14 @@ func (s *groupServer) SetGroupMemberInfo(ctx context.Context, req *pbgroup.SetGr return nil, errs.ErrArgs.Wrap("user not in group") } } + + beforeSetGroupMemberInfoConfig := &EventCallbackConfig{ + CallbackUrl: s.config.Callback.CallbackUrl, + BeforeCreateGroup: s.config.Callback.CallbackBeforeMemberJoinGroup, + } + for i := 0; i < len(req.Members); i++ { - if err := CallbackBeforeSetGroupMemberInfo(ctx, s.config, req.Members[i]); err != nil { + if err := CallbackBeforeSetGroupMemberInfo(ctx, beforeSetGroupMemberInfoConfig, req.Members[i]); err != nil { return nil, err } } @@ -1441,8 +1515,9 @@ func (s *groupServer) SetGroupMemberInfo(ctx context.Context, req *pbgroup.SetGr s.Notification.GroupMemberInfoSetNotification(ctx, member.GroupID, member.UserID) } } + afterSetGroupMemberInfoConfig := beforeSetGroupMemberInfoConfig for i := 0; i < len(req.Members); i++ { - if err := CallbackAfterSetGroupMemberInfo(ctx, s.config, req.Members[i]); err != nil { + if err := CallbackAfterSetGroupMemberInfo(ctx, afterSetGroupMemberInfoConfig, req.Members[i]); err != nil { return nil, err } } diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 3c55fd7ea..d774dc971 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -118,6 +118,7 @@ type Minio struct { SignEndpoint string `yaml:"signEndpoint"` PublicRead bool `yaml:"publicRead"` } + type Cos struct { BucketURL string `yaml:"bucketURL"` SecretID string `yaml:"secretID"` @@ -125,6 +126,7 @@ type Cos struct { SessionToken string `yaml:"sessionToken"` PublicRead bool `yaml:"publicRead"` } + type Oss struct { Endpoint string `yaml:"endpoint"` Bucket string `yaml:"bucket"` @@ -134,6 +136,7 @@ type Oss struct { SessionToken string `yaml:"sessionToken"` PublicRead bool `yaml:"publicRead"` } + type Kodo struct { Endpoint string `yaml:"endpoint"` Bucket string `yaml:"bucket"`