mirror of
https://github.com/openimsdk/open-im-server.git
synced 2025-08-18 10:29:49 +08:00
1
This commit is contained in:
parent
176c65ebaf
commit
50d6b4053a
@ -10,6 +10,7 @@ import (
|
|||||||
"Open_IM/pkg/common/middleware"
|
"Open_IM/pkg/common/middleware"
|
||||||
promePkg "Open_IM/pkg/common/prometheus"
|
promePkg "Open_IM/pkg/common/prometheus"
|
||||||
"Open_IM/pkg/common/token_verify"
|
"Open_IM/pkg/common/token_verify"
|
||||||
|
"Open_IM/pkg/common/tools"
|
||||||
cp "Open_IM/pkg/common/utils"
|
cp "Open_IM/pkg/common/utils"
|
||||||
"Open_IM/pkg/getcdv3"
|
"Open_IM/pkg/getcdv3"
|
||||||
pbCache "Open_IM/pkg/proto/cache"
|
pbCache "Open_IM/pkg/proto/cache"
|
||||||
@ -177,57 +178,54 @@ func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFriendReq) (*pbFriend.ImportFriendResp, error) {
|
func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFriendReq) (*pbFriend.ImportFriendResp, error) {
|
||||||
resp := pbFriend.ImportFriendResp{CommonResp: &sdkws.CommonResp{}}
|
resp := &pbFriend.ImportFriendResp{}
|
||||||
var c sdkws.CommonResp
|
//var c sdkws.CommonResp
|
||||||
if !utils.IsContain(req.OpUserID, config.Config.Manager.AppManagerUid) {
|
if !utils.IsContain(tools.OpUserID(ctx), config.Config.Manager.AppManagerUid) {
|
||||||
log.NewError(req.OperationID, "not authorized", req.OpUserID, config.Config.Manager.AppManagerUid)
|
//log.NewError(req.OperationID, "not authorized", req.OpUserID, config.Config.Manager.AppManagerUid)
|
||||||
c.ErrCode = constant.ErrNoPermission.ErrCode
|
//c.ErrCode = constant.ErrNoPermission.ErrCode
|
||||||
c.ErrMsg = constant.ErrNoPermission.ErrMsg
|
//c.ErrMsg = constant.ErrNoPermission.ErrMsg
|
||||||
for _, v := range req.FriendUserIDList {
|
//for _, userID := range req.FriendUserIDList {
|
||||||
resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: -1})
|
// resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: userID, Result: -1})
|
||||||
}
|
//}
|
||||||
resp.CommonResp = &c
|
return nil, constant.ErrNoPermission.Wrap()
|
||||||
return &resp, nil
|
|
||||||
}
|
}
|
||||||
if _, err := imdb.GetUserByUserID(req.FromUserID); err != nil {
|
if _, err := GetUserInfo(ctx, req.FromUserID); err != nil {
|
||||||
log.NewError(req.OperationID, "GetUserByUserID failed ", err.Error(), req.FromUserID)
|
//log.NewError(req.OperationID, "GetUserByUserID failed ", err.Error(), req.FromUserID)
|
||||||
c.ErrCode = constant.ErrDB.ErrCode
|
//c.ErrCode = constant.ErrDB.ErrCode
|
||||||
c.ErrMsg = "this user not exists,cant not add friend"
|
//c.ErrMsg = "this user not exists,cant not add friend"
|
||||||
for _, v := range req.FriendUserIDList {
|
//for _, userID := range req.FriendUserIDList {
|
||||||
resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: -1})
|
// resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: userID, Result: -1})
|
||||||
}
|
//}
|
||||||
resp.CommonResp = &c
|
//resp.CommonResp = &c
|
||||||
return &resp, nil
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, v := range req.FriendUserIDList {
|
for _, userID := range req.FriendUserIDList {
|
||||||
log.NewDebug(req.OperationID, "FriendUserIDList ", v)
|
if _, fErr := GetUserInfo(ctx, userID); fErr != nil {
|
||||||
if _, fErr := imdb.GetUserByUserID(v); fErr != nil {
|
resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: userID, Result: -1})
|
||||||
log.NewError(req.OperationID, "GetUserByUserID failed ", fErr.Error(), v)
|
|
||||||
resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: -1})
|
|
||||||
} else {
|
} else {
|
||||||
if _, err := imdb.GetFriendRelationshipFromFriend(req.FromUserID, v); err != nil {
|
if _, err := imdb.GetFriendRelationshipFromFriend(req.FromUserID, userID); err != nil {
|
||||||
//Establish two single friendship
|
//Establish two single friendship
|
||||||
toInsertFollow := imdb.Friend{OwnerUserID: req.FromUserID, FriendUserID: v}
|
toInsertFollow := imdb.Friend{OwnerUserID: req.FromUserID, FriendUserID: userID}
|
||||||
err1 := imdb.InsertToFriend(&toInsertFollow)
|
err1 := imdb.InsertToFriend(&toInsertFollow)
|
||||||
if err1 != nil {
|
if err1 != nil {
|
||||||
log.NewError(req.OperationID, "InsertToFriend failed ", err1.Error(), toInsertFollow)
|
log.NewError(req.OperationID, "InsertToFriend failed ", err1.Error(), toInsertFollow)
|
||||||
resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: -1})
|
resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: userID, Result: -1})
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
toInsertFollow = imdb.Friend{OwnerUserID: v, FriendUserID: req.FromUserID}
|
toInsertFollow = imdb.Friend{OwnerUserID: userID, FriendUserID: req.FromUserID}
|
||||||
err2 := imdb.InsertToFriend(&toInsertFollow)
|
err2 := imdb.InsertToFriend(&toInsertFollow)
|
||||||
if err2 != nil {
|
if err2 != nil {
|
||||||
log.NewError(req.OperationID, "InsertToFriend failed ", err2.Error(), toInsertFollow)
|
log.NewError(req.OperationID, "InsertToFriend failed ", err2.Error(), toInsertFollow)
|
||||||
resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: -1})
|
resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: userID, Result: -1})
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: 0})
|
resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: userID, Result: 0})
|
||||||
log.NewDebug(req.OperationID, "UserIDResultList ", resp.UserIDResultList)
|
log.NewDebug(req.OperationID, "UserIDResultList ", resp.UserIDResultList)
|
||||||
chat.FriendAddedNotification(req.OperationID, req.OpUserID, req.FromUserID, v)
|
chat.FriendAddedNotification(req.OperationID, req.OpUserID, req.FromUserID, userID)
|
||||||
} else {
|
} else {
|
||||||
log.NewWarn(req.OperationID, "GetFriendRelationshipFromFriend ok", req.FromUserID, v)
|
log.NewWarn(req.OperationID, "GetFriendRelationshipFromFriend ok", req.FromUserID, userID)
|
||||||
resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: 0})
|
resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: userID, Result: 0})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,6 +16,14 @@ type ErrInfo struct {
|
|||||||
DetailErrMsg string
|
DetailErrMsg string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func NewErrInfo(code int32, msg, detail string) *ErrInfo {
|
||||||
|
return &ErrInfo{
|
||||||
|
ErrCode: code,
|
||||||
|
ErrMsg: msg,
|
||||||
|
DetailErrMsg: detail,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (e *ErrInfo) Error() string {
|
func (e *ErrInfo) Error() string {
|
||||||
return "errMsg: " + e.ErrMsg + " detail errMsg: " + e.DetailErrMsg
|
return "errMsg: " + e.ErrMsg + " detail errMsg: " + e.DetailErrMsg
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user