diff --git a/internal/rpc/group/callback.go b/internal/rpc/group/callback.go index 33b880aac..f2c4ae1eb 100644 --- a/internal/rpc/group/callback.go +++ b/internal/rpc/group/callback.go @@ -192,5 +192,110 @@ func CallbackBeforeSetGroupMemberInfo(ctx context.Context, req *group.SetGroupMe if resp.Ex != nil { req.Ex = wrapperspb.String(*resp.Ex) } +func CallbackAfterSetGroupMemberInfo(ctx context.Context, req *group.SetGroupMemberInfo) (err error) { + if !config.Config.Callback.CallbackBeforeSetGroupMemberInfo.Enable { + return nil + } + callbackReq := callbackstruct.CallbackAfterSetGroupMemberInfoReq{ + CallbackCommand: callbackstruct.CallbackBeforeSetGroupMemberInfoCommand, + GroupID: req.GroupID, + UserID: req.UserID, + } + if req.Nickname != nil { + callbackReq.Nickname = &req.Nickname.Value + } + if req.FaceURL != nil { + callbackReq.FaceURL = &req.FaceURL.Value + } + if req.RoleLevel != nil { + callbackReq.RoleLevel = &req.RoleLevel.Value + } + if req.Ex != nil { + callbackReq.Ex = &req.Ex.Value + } + resp := &callbackstruct.CallbackAfterSetGroupMemberInfoResp{} + if err = http.CallBackPostReturn(ctx, config.Config.Callback.CallbackUrl, callbackReq, resp, config.Config.Callback.CallbackBeforeSetGroupMemberInfo); err != nil { + return err + } + return nil +} + +func CallbackQuitGroup(ctx context.Context, req *group.QuitGroupReq) (err error) { + if !config.Config.Callback.CallbackQuitGroup.Enable { + return nil + } + cbReq := &callbackstruct.CallbackQuitGroupReq{ + CallbackCommand: callbackstruct.CallbackQuitGroupCommand, + GroupID: req.GroupID, + UserID: req.UserID, + } + resp := &callbackstruct.CallbackQuitGroupResp{} + if err = http.CallBackPostReturn(ctx, config.Config.Callback.CallbackUrl, cbReq, resp, config.Config.Callback.CallbackQuitGroup); err != nil { + return err + } + return nil +} + +func CallbackKillGroupMember(ctx context.Context, req *pbgroup.KickGroupMemberReq) (err error) { + if !config.Config.Callback.CallbackKillGroupMember.Enable { + return nil + } + cbReq := &callbackstruct.CallbackKillGroupMemberReq{ + CallbackCommand: callbackstruct.CallbackKillGroupCommand, + GroupID: req.GroupID, + KickedUserIDs: req.KickedUserIDs, + } + resp := &callbackstruct.CallbackKillGroupMemberResp{} + if err = http.CallBackPostReturn(ctx, config.Config.Callback.CallbackUrl, cbReq, resp, config.Config.Callback.CallbackQuitGroup); err != nil { + return err + } + return nil +} + +func CallbackDismissGroup(ctx context.Context, req *callbackstruct.CallbackDisMissGroupReq) (err error) { + if !config.Config.Callback.CallbackDismissGroup.Enable { + return nil + } + req.CallbackCommand = callbackstruct.CallbackDisMissGroupCommand + resp := &callbackstruct.CallbackDisMissGroupResp{} + if err = http.CallBackPostReturn(ctx, config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackQuitGroup); err != nil { + return err + } + return nil +} + +func CallbackApplyJoinGroupBefore(ctx context.Context, req *callbackstruct.CallbackJoinGroupReq) (err error) { + if !config.Config.Callback.CallbackBeforeJoinGroup.Enable { + return nil + } + + req.CallbackCommand = callbackstruct.CallbackBeforeJoinGroupCommand + + resp := &callbackstruct.CallbackJoinGroupResp{} + if err = http.CallBackPostReturn(ctx, config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackBeforeJoinGroup); err != nil { + return err + } + + return nil +} + +func CallbackTransferGroupOwnerAfter(ctx context.Context, req *pbgroup.TransferGroupOwnerReq) (err error) { + if !config.Config.Callback.CallbackTransferGroupOwnerAfter.Enable { + return nil + } + + cbReq := &callbackstruct.CallbackTransferGroupOwnerReq{ + CallbackCommand: callbackstruct.CallbackTransferGroupOwnerAfter, + GroupID: req.GroupID, + OldOwnerUserID: req.OldOwnerUserID, + NewOwnerUserID: req.NewOwnerUserID, + } + + resp := &callbackstruct.CallbackTransferGroupOwnerResp{} + if err = http.CallBackPostReturn(ctx, config.Config.Callback.CallbackUrl, cbReq, resp, config.Config.Callback.CallbackBeforeJoinGroup); err != nil { + return err + } + return nil +} return nil }