test friend and blacklist

pull/1499/head
AndrewZuo01 2 years ago
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…
Cancel
Save