mirror of
https://github.com/openimsdk/open-im-server.git
synced 2025-12-04 11:22:17 +08:00
test friend and blacklist
This commit is contained in:
parent
c9cdb0ebe2
commit
1c46148c89
@ -397,7 +397,7 @@ callback:
|
|||||||
enable: false
|
enable: false
|
||||||
timeout: 5
|
timeout: 5
|
||||||
failedContinue: true
|
failedContinue: true
|
||||||
##TODO CALLBACK TEST
|
##TODO CALLBACK
|
||||||
setGroupInfoAfter:
|
setGroupInfoAfter:
|
||||||
enable: false
|
enable: false
|
||||||
timeout: 5
|
timeout: 5
|
||||||
@ -410,7 +410,34 @@ callback:
|
|||||||
enable: false
|
enable: false
|
||||||
timeout: 5
|
timeout: 5
|
||||||
failedContinue: true
|
failedContinue: true
|
||||||
|
addBlackBefore:
|
||||||
|
enable: false
|
||||||
|
timeout: 5
|
||||||
|
failedContinue: true
|
||||||
|
addFriendAfter:
|
||||||
|
enable: false
|
||||||
|
timeout: 5
|
||||||
|
failedContinue: true
|
||||||
|
addFriendAgreeBefore:
|
||||||
|
enable: false
|
||||||
|
timeout: 5
|
||||||
|
failedContinue: true
|
||||||
|
deleteFriendAfter:
|
||||||
|
enable: false
|
||||||
|
timeout: 5
|
||||||
|
failedContinue: true
|
||||||
|
importFriendsBefore:
|
||||||
|
enable: false
|
||||||
|
timeout: 5
|
||||||
|
failedContinue: true
|
||||||
|
importFriendsAfter:
|
||||||
|
enable: false
|
||||||
|
timeout: 5
|
||||||
|
failedContinue: true
|
||||||
|
removeBlackAfter:
|
||||||
|
enable: false
|
||||||
|
timeout: 5
|
||||||
|
failedContinue: true
|
||||||
###################### Prometheus ######################
|
###################### Prometheus ######################
|
||||||
# Prometheus configuration for various services
|
# Prometheus configuration for various services
|
||||||
# The number of Prometheus ports per service needs to correspond to rpcPort
|
# The number of Prometheus ports per service needs to correspond to rpcPort
|
||||||
|
|||||||
@ -74,6 +74,9 @@ func (s *friendServer) RemoveBlack(
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
s.notificationSender.BlackDeletedNotification(ctx, req)
|
s.notificationSender.BlackDeletedNotification(ctx, req)
|
||||||
|
if err := CallbackAfterRemoveBlack(ctx, req); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
return &pbfriend.RemoveBlackResp{}, nil
|
return &pbfriend.RemoveBlackResp{}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -17,6 +17,7 @@ package friend
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"github.com/OpenIMSDK/tools/utils"
|
"github.com/OpenIMSDK/tools/utils"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/OpenIMSDK/protocol/constant"
|
"github.com/OpenIMSDK/protocol/constant"
|
||||||
pbfriend "github.com/OpenIMSDK/protocol/friend"
|
pbfriend "github.com/OpenIMSDK/protocol/friend"
|
||||||
@ -111,3 +112,84 @@ func CallbackBeforeAddFriendAgree(ctx context.Context, req *pbfriend.RespondFrie
|
|||||||
utils.StructFieldNotNilReplace(req, resp)
|
utils.StructFieldNotNilReplace(req, resp)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
func CallbackAfterDeleteFriend(ctx context.Context, req *pbfriend.DeleteFriendReq) error {
|
||||||
|
if !config.Config.Callback.CallbackAfterDeleteFriend.Enable {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
cbReq := &cbapi.CallbackAfterDeleteFriendReq{
|
||||||
|
CallbackCommand: cbapi.CallbackAfterDeleteFriendCommand,
|
||||||
|
OwnerUserID: req.OwnerUserID,
|
||||||
|
FriendUserID: req.FriendUserID,
|
||||||
|
EventTime: time.Now().UnixMilli(),
|
||||||
|
}
|
||||||
|
resp := &cbapi.CallbackAfterDeleteFriendResp{}
|
||||||
|
if err := http.CallBackPostReturn(ctx, config.Config.Callback.CallbackUrl, cbReq, resp, config.Config.Callback.CallbackAfterDeleteFriend); err != nil {
|
||||||
|
if err == errs.ErrCallbackContinue {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
utils.StructFieldNotNilReplace(req, resp)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
func CallbackBeforeImportFriends(ctx context.Context, req *pbfriend.ImportFriendReq) error {
|
||||||
|
if !config.Config.Callback.CallbackBeforeImportFriends.Enable {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
cbReq := &cbapi.CallbackBeforeImportFriendsReq{
|
||||||
|
CallbackCommand: cbapi.CallbackBeforeImportFriendsCommand,
|
||||||
|
OwnerUserID: req.OwnerUserID,
|
||||||
|
FriendUserIDs: req.FriendUserIDs,
|
||||||
|
EventTime: time.Now().UnixMilli(),
|
||||||
|
}
|
||||||
|
resp := &cbapi.CallbackBeforeImportFriendsResp{}
|
||||||
|
if err := http.CallBackPostReturn(ctx, config.Config.Callback.CallbackUrl, cbReq, resp, config.Config.Callback.CallbackBeforeImportFriends); err != nil {
|
||||||
|
if err == errs.ErrCallbackContinue {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
utils.StructFieldNotNilReplace(req, resp)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
func CallbackAfterImportFriends(ctx context.Context, req *pbfriend.ImportFriendReq) error {
|
||||||
|
if !config.Config.Callback.CallbackAfterImportFriends.Enable {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
cbReq := &cbapi.CallbackAfterImportFriendsReq{
|
||||||
|
CallbackCommand: cbapi.CallbackAfterImportFriendsCommand,
|
||||||
|
OwnerUserID: req.OwnerUserID,
|
||||||
|
FriendUserIDs: req.FriendUserIDs,
|
||||||
|
EventTime: time.Now().UnixMilli(),
|
||||||
|
}
|
||||||
|
resp := &cbapi.CallbackAfterImportFriendsResp{}
|
||||||
|
if err := http.CallBackPostReturn(ctx, config.Config.Callback.CallbackUrl, cbReq, resp, config.Config.Callback.CallbackAfterImportFriends); err != nil {
|
||||||
|
if err == errs.ErrCallbackContinue {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
utils.StructFieldNotNilReplace(req, resp)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func CallbackAfterRemoveBlack(ctx context.Context, req *pbfriend.RemoveBlackReq) error {
|
||||||
|
if !config.Config.Callback.CallbackAfterRemoveBlack.Enable {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
cbReq := &cbapi.CallbackAfterRemoveBlackReq{
|
||||||
|
CallbackCommand: cbapi.CallbackAfterRemoveBlackCommand,
|
||||||
|
OwnerUserID: req.OwnerUserID,
|
||||||
|
BlackUserID: req.BlackUserID,
|
||||||
|
EventTime: time.Now().UnixMilli(),
|
||||||
|
}
|
||||||
|
resp := &cbapi.CallbackAfterRemoveBlackResp{}
|
||||||
|
if err := http.CallBackPostReturn(ctx, config.Config.Callback.CallbackUrl, cbReq, resp, config.Config.Callback.CallbackAfterRemoveBlack); err != nil {
|
||||||
|
if err == errs.ErrCallbackContinue {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
utils.StructFieldNotNilReplace(req, resp)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|||||||
@ -144,6 +144,10 @@ func (s *friendServer) ImportFriends(
|
|||||||
if utils.Duplicate(req.FriendUserIDs) {
|
if utils.Duplicate(req.FriendUserIDs) {
|
||||||
return nil, errs.ErrArgs.Wrap("friend userID repeated")
|
return nil, errs.ErrArgs.Wrap("friend userID repeated")
|
||||||
}
|
}
|
||||||
|
if err := CallbackBeforeImportFriends(ctx, req); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
if err := s.friendDatabase.BecomeFriends(ctx, req.OwnerUserID, req.FriendUserIDs, constant.BecomeFriendByImport); err != nil {
|
if err := s.friendDatabase.BecomeFriends(ctx, req.OwnerUserID, req.FriendUserIDs, constant.BecomeFriendByImport); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -154,6 +158,9 @@ func (s *friendServer) ImportFriends(
|
|||||||
HandleResult: constant.FriendResponseAgree,
|
HandleResult: constant.FriendResponseAgree,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
if err := CallbackAfterImportFriends(ctx, req); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
return &pbfriend.ImportFriendResp{}, nil
|
return &pbfriend.ImportFriendResp{}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -214,6 +221,9 @@ func (s *friendServer) DeleteFriend(
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
s.notificationSender.FriendDeletedNotification(ctx, req)
|
s.notificationSender.FriendDeletedNotification(ctx, req)
|
||||||
|
if err := CallbackAfterDeleteFriend(ctx, req); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
return resp, nil
|
return resp, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -5,9 +5,12 @@ const CallbackAfterJoinGroupCommand = "CallbackAfterJoinGroupCommand"
|
|||||||
const CallbackAfterSetGroupInfoCommand = "CallbackAfterSetGroupInfoCommand"
|
const CallbackAfterSetGroupInfoCommand = "CallbackAfterSetGroupInfoCommand"
|
||||||
const CallbackBeforeSetGroupInfoCommand = "CallbackBeforeSetGroupInfoCommand"
|
const CallbackBeforeSetGroupInfoCommand = "CallbackBeforeSetGroupInfoCommand"
|
||||||
|
|
||||||
// TODO CALLBACK
|
|
||||||
|
|
||||||
const CallbackAfterRevokeMsgCommand = "CallbackBeforeAfterMsgCommand"
|
const CallbackAfterRevokeMsgCommand = "CallbackBeforeAfterMsgCommand"
|
||||||
const CallbackBeforeAddBlackCommand = "CallbackBeforeAddBlackCommand"
|
const CallbackBeforeAddBlackCommand = "CallbackBeforeAddBlackCommand"
|
||||||
const CallbackAfterAddFriendCommand = "CallbackAfterAddFriendCommand"
|
const CallbackAfterAddFriendCommand = "CallbackAfterAddFriendCommand"
|
||||||
const CallbackBeforeAddFriendAgreeCommand = "CallbackBeforeAddFriendAgreeCommand"
|
const CallbackBeforeAddFriendAgreeCommand = "CallbackBeforeAddFriendAgreeCommand"
|
||||||
|
|
||||||
|
const CallbackAfterDeleteFriendCommand = "CallbackAfterDeleteFriendCommand"
|
||||||
|
const CallbackBeforeImportFriendsCommand = "CallbackBeforeImportFriendsCommand"
|
||||||
|
const CallbackAfterImportFriendsCommand = "CallbackAfterImportFriendsCommand"
|
||||||
|
const CallbackAfterRemoveBlackCommand = "CallbackAfterRemoveBlackCommand"
|
||||||
|
|||||||
@ -59,3 +59,42 @@ type CallbackBeforeAddFriendAgreeReq struct {
|
|||||||
type CallbackBeforeAddFriendAgreeResp struct {
|
type CallbackBeforeAddFriendAgreeResp struct {
|
||||||
CommonCallbackResp
|
CommonCallbackResp
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type CallbackAfterDeleteFriendReq struct {
|
||||||
|
CallbackCommand `json:"callbackCommand"`
|
||||||
|
OwnerUserID string `json:"ownerUserID" `
|
||||||
|
FriendUserID string `json:"friendUserID"`
|
||||||
|
EventTime int64 `json:"eventTime"`
|
||||||
|
}
|
||||||
|
type CallbackAfterDeleteFriendResp struct {
|
||||||
|
CommonCallbackResp
|
||||||
|
}
|
||||||
|
|
||||||
|
type CallbackBeforeImportFriendsReq struct {
|
||||||
|
CallbackCommand `json:"callbackCommand"`
|
||||||
|
OwnerUserID string `json:"ownerUserID" `
|
||||||
|
FriendUserIDs []string `json:"friendUserIDs"`
|
||||||
|
EventTime int64 `json:"eventTime"`
|
||||||
|
}
|
||||||
|
type CallbackBeforeImportFriendsResp struct {
|
||||||
|
CommonCallbackResp
|
||||||
|
}
|
||||||
|
type CallbackAfterImportFriendsReq struct {
|
||||||
|
CallbackCommand `json:"callbackCommand"`
|
||||||
|
OwnerUserID string `json:"ownerUserID" `
|
||||||
|
FriendUserIDs []string `json:"friendUserIDs"`
|
||||||
|
EventTime int64 `json:"eventTime"`
|
||||||
|
}
|
||||||
|
type CallbackAfterImportFriendsResp struct {
|
||||||
|
CommonCallbackResp
|
||||||
|
}
|
||||||
|
|
||||||
|
type CallbackAfterRemoveBlackReq struct {
|
||||||
|
CallbackCommand `json:"callbackCommand"`
|
||||||
|
OwnerUserID string `json:"ownerUserID"`
|
||||||
|
BlackUserID string `json:"blackUserID""`
|
||||||
|
EventTime int64 `json:"eventTime"`
|
||||||
|
}
|
||||||
|
type CallbackAfterRemoveBlackResp struct {
|
||||||
|
CommonCallbackResp
|
||||||
|
}
|
||||||
|
|||||||
@ -267,11 +267,15 @@ type configStruct struct {
|
|||||||
CallbackAfterJoinGroup CallBackConfig `yaml:"joinGroupAfter"`
|
CallbackAfterJoinGroup CallBackConfig `yaml:"joinGroupAfter"`
|
||||||
CallbackAfterSetGroupInfo CallBackConfig `yaml:"setGroupInfoAfter"`
|
CallbackAfterSetGroupInfo CallBackConfig `yaml:"setGroupInfoAfter"`
|
||||||
CallbackBeforeSetGroupInfo CallBackConfig `yaml:"setGroupInfoBefore"`
|
CallbackBeforeSetGroupInfo CallBackConfig `yaml:"setGroupInfoBefore"`
|
||||||
//TODO CALLBACK/
|
CallbackAfterRevokeMsg CallBackConfig `yaml:"revokeMsgAfter"`
|
||||||
CallbackAfterRevokeMsg CallBackConfig `yaml:"revokeMsgAfter"`
|
CallbackBeforeAddBlack CallBackConfig `yaml:"addBlackBefore"`
|
||||||
CallbackBeforeAddBlack CallBackConfig `yaml:"addBlackBefore"`
|
CallbackAfterAddFriend CallBackConfig `yaml:"addFriendAfter"`
|
||||||
CallbackAfterAddFriend CallBackConfig `yaml:"addFriendAfter"`
|
CallbackBeforeAddFriendAgree CallBackConfig `yaml:"addFriendAgreeBefore"`
|
||||||
CallbackBeforeAddFriendAgree CallBackConfig `yaml:"addFriendAgreeBefore"`
|
|
||||||
|
CallbackAfterDeleteFriend CallBackConfig `yaml:"deleteFriendAfter"`
|
||||||
|
CallbackBeforeImportFriends CallBackConfig `yaml:"importFriendsBefore"`
|
||||||
|
CallbackAfterImportFriends CallBackConfig `yaml:"importFriendsAfter"`
|
||||||
|
CallbackAfterRemoveBlack CallBackConfig `yaml:"removeBlackAfter"`
|
||||||
} `yaml:"callback"`
|
} `yaml:"callback"`
|
||||||
|
|
||||||
Prometheus struct {
|
Prometheus struct {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user