Error code standardization

This commit is contained in:
skiffer-git 2023-01-30 21:47:29 +08:00
parent ec23d22d6d
commit b881924144
7 changed files with 258 additions and 298 deletions

View File

@ -12,20 +12,15 @@ import (
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" "Open_IM/pkg/common/tools"
"Open_IM/pkg/common/tracelog"
"Open_IM/pkg/getcdv3" "Open_IM/pkg/getcdv3"
pbFriend "Open_IM/pkg/proto/friend" pbFriend "Open_IM/pkg/proto/friend"
sdkws "Open_IM/pkg/proto/sdk_ws" sdkws "Open_IM/pkg/proto/sdk_ws"
"Open_IM/pkg/utils" "Open_IM/pkg/utils"
"context" "context"
"errors" grpcPrometheus "github.com/grpc-ecosystem/go-grpc-prometheus"
"gorm.io/gorm"
"net" "net"
"strconv" "strconv"
"strings" "strings"
"time"
grpcPrometheus "github.com/grpc-ecosystem/go-grpc-prometheus"
"google.golang.org/grpc" "google.golang.org/grpc"
) )
@ -36,7 +31,6 @@ type friendServer struct {
etcdSchema string etcdSchema string
etcdAddr []string etcdAddr []string
controller.FriendInterface controller.FriendInterface
controller.FriendRequestInterface
controller.BlackInterface controller.BlackInterface
} }
@ -61,7 +55,6 @@ func NewFriendServer(port int) *friendServer {
panic("db init err:" + "conn is nil") panic("db init err:" + "conn is nil")
} }
f.FriendInterface = controller.NewFriendController(model.DB) f.FriendInterface = controller.NewFriendController(model.DB)
f.FriendRequestInterface = controller.NewFriendRequestController(model.DB)
f.BlackInterface = controller.NewBlackController(model.DB) f.BlackInterface = controller.NewBlackController(model.DB)
return &f return &f
} }
@ -142,43 +135,23 @@ func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq
if err := callbackBeforeAddFriendV1(req); err != nil { if err := callbackBeforeAddFriendV1(req); err != nil {
return nil, err return nil, err
} }
friends1, err := s.FriendInterface.FindOwnerUserID(ctx, req.ToUserID)
//检查toUserID是否存在
if _, err := GetUsersInfo(ctx, []string{req.ToUserID}); err != nil {
return nil, err
}
//from是否在to的好友列表里面
err, in1, in2 := s.FriendInterface.CheckIn(ctx, req.FromUserID, req.ToUserID)
if err != nil { if err != nil {
return nil, err return nil, err
} }
friends2, err := s.FriendInterface.FindOwnerUserID(ctx, req.FromUserID) if in1 && in2 {
if err != nil { return nil, constant.ErrRelationshipAlready.Wrap()
}
if err = s.FriendInterface.AddFriendRequest(ctx, req.FromUserID, req.ToUserID, req.ReqMsg, req.Ex); err != nil {
return nil, err return nil, err
} }
var isSend = true chat.FriendApplicationNotification(req)
for _, v1 := range friends1 {
if v1.FriendUserID == req.FromUserID {
for _, v2 := range friends2 {
if v2.FriendUserID == req.ToUserID {
isSend = false
break
}
}
break
}
}
//Cannot add non-existent users
if isSend {
if _, err := GetUserInfo(ctx, req.ToUserID); err != nil {
return nil, err
}
friendRequest := relation.FriendRequest{
FromUserID: req.FromUserID,
ToUserID: req.ToUserID,
HandleResult: 0,
ReqMsg: req.ReqMsg,
CreateTime: time.Now(),
}
if err := s.FriendRequestInterface.Create(ctx, []*relation.FriendRequest{&friendRequest}); err != nil {
return nil, err
}
chat.FriendApplicationNotification(req)
}
return resp, nil return resp, nil
} }
@ -187,34 +160,16 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri
if err := token_verify.CheckAdmin(ctx); err != nil { if err := token_verify.CheckAdmin(ctx); err != nil {
return nil, err return nil, err
} }
if _, err := GetUserInfo(ctx, req.FromUserID); err != nil { if _, err := GetUsersInfo(ctx, []string{req.FromUserID}); err != nil {
return nil, err return nil, err
} }
var friends []*relation.Friend var friends []*relation.Friend
for _, userID := range utils.RemoveDuplicateElement(req.FriendUserIDList) { for _, userID := range utils.RemoveDuplicateElement(req.FriendUserIDList) {
if _, err := GetUserInfo(ctx, userID); err != nil { friends = append(friends, &relation.Friend{OwnerUserID: userID, FriendUserID: req.FromUserID, AddSource: constant.BecomeFriendByImport, OperatorUserID: tools.OpUserID(ctx)})
return nil, err
}
fs, err := s.FriendInterface.FindUserState(ctx, req.FromUserID, userID)
if err != nil {
return nil, err
}
switch len(fs) {
case 1:
if fs[0].OwnerUserID == req.FromUserID {
friends = append(friends, &relation.Friend{OwnerUserID: userID, FriendUserID: req.FromUserID})
} else {
friends = append(friends, &relation.Friend{OwnerUserID: req.FromUserID, FriendUserID: userID})
}
case 0:
friends = append(friends, &relation.Friend{OwnerUserID: userID, FriendUserID: req.FromUserID}, &relation.Friend{OwnerUserID: req.FromUserID, FriendUserID: userID})
default:
continue
}
} }
if len(friends) > 0 { if len(friends) > 0 {
if err := s.FriendInterface.Create(ctx, friends); err != nil { if err := s.FriendInterface.BecomeFriend(ctx, friends); err != nil {
return nil, err return nil, err
} }
} }
@ -222,46 +177,30 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri
} }
// process Friend application // process Friend application
func (s *friendServer) AddFriendResponse(ctx context.Context, req *pbFriend.AddFriendResponseReq) (*pbFriend.AddFriendResponseResp, error) { func (s *friendServer) friendApplyResponse(ctx context.Context, req *pbFriend.FriendApplyResponseReq) (*pbFriend.FriendApplyResponseResp, error) {
resp := &pbFriend.AddFriendResponseResp{} resp := &pbFriend.FriendApplyResponseResp{}
if err := token_verify.CheckAccessV3(ctx, req.FromUserID); err != nil { if err := token_verify.CheckAccessV3(ctx, req.ToUserID); err != nil {
return nil, err
}
friendRequest, err := s.friendRequestModel.Take(ctx, req.ToUserID, req.FromUserID)
if err != nil {
return nil, err
}
friendRequest.HandleResult = req.HandleResult
friendRequest.HandleTime = time.Now()
friendRequest.HandleMsg = req.HandleMsg
friendRequest.HandlerUserID = tools.OpUserID(ctx)
err = relation.UpdateFriendApplication(friendRequest)
if err != nil {
return nil, err return nil, err
} }
//Change the status of the friend request form friendRequest := relation.FriendRequest{FromUserID: req.FromUserID, ToUserID: req.ToUserID, HandleMsg: req.HandleMsg, HandleResult: req.HandleResult}
if req.HandleResult == constant.FriendFlag { if req.HandleResult == constant.FriendResponseAgree {
//Establish friendship after find friend relationship not exists err := s.AgreeFriendRequest(ctx, &friendRequest)
_, err := s.friendModel.Take(ctx, req.FromUserID, req.ToUserID) if err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
if err := s.friendModel.Create(ctx, []*relation.Friend{{OwnerUserID: req.FromUserID, FriendUserID: req.ToUserID, OperatorUserID: tools.OpUserID(ctx)}}); err != nil {
return nil, err
}
chat.FriendAddedNotification(tools.OperationID(ctx), tools.OpUserID(ctx), req.FromUserID, req.ToUserID)
} else if err != nil {
return nil, err return nil, err
} }
}
if req.HandleResult == constant.FriendResponseAgree {
chat.FriendApplicationApprovedNotification(req) chat.FriendApplicationApprovedNotification(req)
} else if req.HandleResult == constant.FriendResponseRefuse { return resp, nil
chat.FriendApplicationRejectedNotification(req)
} else {
tracelog.SetCtxInfo(ctx, utils.GetSelfFuncName(), nil, "handleResult", req.HandleResult)
} }
return resp, nil if req.HandleResult == constant.FriendResponseRefuse {
err := s.RefuseFriendRequest(ctx, &friendRequest)
if err != nil {
return nil, err
}
chat.FriendApplicationRejectedNotification(req)
return resp, nil
}
return nil, constant.ErrArgs.Wrap("req.HandleResult != -1/1")
} }
func (s *friendServer) DeleteFriend(ctx context.Context, req *pbFriend.DeleteFriendReq) (*pbFriend.DeleteFriendResp, error) { func (s *friendServer) DeleteFriend(ctx context.Context, req *pbFriend.DeleteFriendReq) (*pbFriend.DeleteFriendResp, error) {
@ -276,26 +215,6 @@ func (s *friendServer) DeleteFriend(ctx context.Context, req *pbFriend.DeleteFri
return resp, nil return resp, nil
} }
func (s *friendServer) GetBlacklist(ctx context.Context, req *pbFriend.GetBlacklistReq) (*pbFriend.GetBlacklistResp, error) {
resp := &pbFriend.GetBlacklistResp{}
if err := token_verify.CheckAccessV3(ctx, req.FromUserID); err != nil {
return nil, err
}
blacks, err := s.BlackInterface.FindByOwnerUserID(ctx, req.FromUserID)
if err != nil {
return nil, err
}
blackIDList := make([]string, 0, len(blacks))
for _, black := range blacks {
blackIDList = append(blackIDList, black.BlockUserID)
}
resp.BlackUserInfoList, err = GetPublicUserInfoBatch(ctx, blackIDList)
if err != nil {
return nil, err
}
return resp, nil
}
func (s *friendServer) SetFriendRemark(ctx context.Context, req *pbFriend.SetFriendRemarkReq) (*pbFriend.SetFriendRemarkResp, error) { func (s *friendServer) SetFriendRemark(ctx context.Context, req *pbFriend.SetFriendRemarkReq) (*pbFriend.SetFriendRemarkResp, error) {
resp := &pbFriend.SetFriendRemarkResp{} resp := &pbFriend.SetFriendRemarkResp{}
if err := token_verify.CheckAccessV3(ctx, req.FromUserID); err != nil { if err := token_verify.CheckAccessV3(ctx, req.FromUserID); err != nil {
@ -321,32 +240,6 @@ func (s *friendServer) RemoveBlacklist(ctx context.Context, req *pbFriend.Remove
return resp, nil return resp, nil
} }
func (s *friendServer) IsInBlackList(ctx context.Context, req *pbFriend.IsInBlackListReq) (*pbFriend.IsInBlackListResp, error) {
resp := &pbFriend.IsInBlackListResp{}
if err := token_verify.CheckAccessV3(ctx, req.FromUserID); err != nil {
return nil, err
}
exist, err := s.BlackInterface.IsExist(ctx, req.FromUserID, req.ToUserID)
if err != nil {
return nil, err
}
resp.Response = exist
return resp, nil
}
func (s *friendServer) IsFriend(ctx context.Context, req *pbFriend.IsFriendReq) (*pbFriend.IsFriendResp, error) {
resp := &pbFriend.IsFriendResp{}
if err := token_verify.CheckAccessV3(ctx, req.FromUserID); err != nil {
return nil, err
}
exist, err := s.FriendInterface.IsExist(ctx, req.FromUserID, req.ToUserID)
if err != nil {
return nil, err
}
resp.Response = exist
return resp, nil
}
func (s *friendServer) GetFriendList(ctx context.Context, req *pbFriend.GetFriendListReq) (*pbFriend.GetFriendListResp, error) { func (s *friendServer) GetFriendList(ctx context.Context, req *pbFriend.GetFriendListReq) (*pbFriend.GetFriendListResp, error) {
resp := &pbFriend.GetFriendListResp{} resp := &pbFriend.GetFriendListResp{}
if err := token_verify.CheckAccessV3(ctx, req.FromUserID); err != nil { if err := token_verify.CheckAccessV3(ctx, req.FromUserID); err != nil {
@ -360,7 +253,7 @@ func (s *friendServer) GetFriendList(ctx context.Context, req *pbFriend.GetFrien
for _, f := range friends { for _, f := range friends {
userIDList = append(userIDList, f.FriendUserID) userIDList = append(userIDList, f.FriendUserID)
} }
users, err := GetUserInfoList(ctx, userIDList) users, err := GetUsersInfo(ctx, userIDList)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -444,3 +337,49 @@ func (s *friendServer) GetSelfApplyList(ctx context.Context, req *pbFriend.GetSe
} }
return resp, nil return resp, nil
} }
func (s *friendServer) GetBlacklist(ctx context.Context, req *pbFriend.GetBlacklistReq) (*pbFriend.GetBlacklistResp, error) {
resp := &pbFriend.GetBlacklistResp{}
if err := token_verify.CheckAccessV3(ctx, req.FromUserID); err != nil {
return nil, err
}
blacks, err := s.BlackInterface.FindByOwnerUserID(ctx, req.FromUserID)
if err != nil {
return nil, err
}
blackIDList := make([]string, 0, len(blacks))
for _, black := range blacks {
blackIDList = append(blackIDList, black.BlockUserID)
}
resp.BlackUserInfoList, err = GetPublicUserInfoBatch(ctx, blackIDList)
if err != nil {
return nil, err
}
return resp, nil
}
func (s *friendServer) IsInBlackList(ctx context.Context, req *pbFriend.IsInBlackListReq) (*pbFriend.IsInBlackListResp, error) {
resp := &pbFriend.IsInBlackListResp{}
if err := token_verify.CheckAccessV3(ctx, req.FromUserID); err != nil {
return nil, err
}
exist, err := s.BlackInterface.IsExist(ctx, req.FromUserID, req.ToUserID)
if err != nil {
return nil, err
}
resp.Response = exist
return resp, nil
}
func (s *friendServer) IsFriend(ctx context.Context, req *pbFriend.IsFriendReq) (*pbFriend.IsFriendResp, error) {
resp := &pbFriend.IsFriendResp{}
if err := token_verify.CheckAccessV3(ctx, req.FromUserID); err != nil {
return nil, err
}
exist, err := s.FriendInterface.IsExist(ctx, req.FromUserID, req.ToUserID)
if err != nil {
return nil, err
}
resp.Response = exist
return resp, nil
}

View File

@ -6,10 +6,6 @@ import (
"errors" "errors"
) )
func GetUserInfo(ctx context.Context, userID string) (*server_api_params.PublicUserInfo, error) {
return nil, errors.New("TODO:GetUserInfo")
}
func GetPublicUserInfoBatch(ctx context.Context, userIDs []string) ([]*server_api_params.PublicUserInfo, error) { func GetPublicUserInfoBatch(ctx context.Context, userIDs []string) ([]*server_api_params.PublicUserInfo, error) {
if len(userIDs) == 0 { if len(userIDs) == 0 {
return []*server_api_params.PublicUserInfo{}, nil return []*server_api_params.PublicUserInfo{}, nil
@ -17,7 +13,7 @@ func GetPublicUserInfoBatch(ctx context.Context, userIDs []string) ([]*server_ap
return nil, errors.New("TODO:GetUserInfo") return nil, errors.New("TODO:GetUserInfo")
} }
func GetUserInfoList(ctx context.Context, userIDs []string) ([]*server_api_params.UserInfo, error) { func GetUsersInfo(ctx context.Context, userIDs []string) ([]*server_api_params.UserInfo, error) {
if len(userIDs) == 0 { if len(userIDs) == 0 {
return []*server_api_params.UserInfo{}, nil return []*server_api_params.UserInfo{}, nil
} }

View File

@ -314,6 +314,12 @@ const (
ReliableNotificationNoMsg = 2 ReliableNotificationNoMsg = 2
ReliableNotificationMsg = 3 ReliableNotificationMsg = 3
) )
const (
BecomeFriendByImport = 1 //管理员导入
BecomeFriendByMyApply = 2 //自己主动申请添加
BecomeFriendByPeerApply = 3 //对方主动申请添加
BecomeFriendByApply = 4 //自己主动申请添加
)
const ( const (
ApplyNeedVerificationInviteDirectly = 0 // 申请需要同意 邀请直接进 ApplyNeedVerificationInviteDirectly = 0 // 申请需要同意 邀请直接进

View File

@ -7,6 +7,16 @@ import (
) )
type FriendInterface interface { type FriendInterface interface {
// CheckIn 检查fromUserID是否在toUserID的好友列表中(inTo==true) 检查toUserID是否在fromUserID的好友列表中(inFrom==true)
CheckIn(ctx context.Context, fromUserID, toUserID string) (err error, inTo bool, inFrom bool)
// AddFriendRequest 增加或者更新好友申请
AddFriendRequest(ctx context.Context, fromUserID, toUserID string, reqMsg string, ex string) (err error)
// 先判断是否在好友表,如果在则不插入
BecomeFriend(ctx context.Context, friends []*relation.Friend) (err error)
//拒绝好友申请
RefuseFriendRequest(ctx context.Context, friendRequest *relation.FriendRequest) (err error)
// 同意好友申请
AgreeFriendRequest(ctx context.Context, friendRequest *relation.FriendRequest) (err error)
Create(ctx context.Context, friends []*relation.Friend) (err error) Create(ctx context.Context, friends []*relation.Friend) (err error)
Delete(ctx context.Context, ownerUserID string, friendUserIDs string) (err error) Delete(ctx context.Context, ownerUserID string, friendUserIDs string) (err error)
UpdateByMap(ctx context.Context, ownerUserID string, args map[string]interface{}) (err error) UpdateByMap(ctx context.Context, ownerUserID string, args map[string]interface{}) (err error)

View File

@ -8,7 +8,7 @@ import (
"time" "time"
) )
var FriendRequestDB *gorm.DB //var FriendRequestDB *gorm.DB
type FriendRequest struct { type FriendRequest struct {
FromUserID string `gorm:"column:from_user_id;primary_key;size:64"` FromUserID string `gorm:"column:from_user_id;primary_key;size:64"`

View File

@ -36,7 +36,7 @@ func (m *GetFriendsInfoReq) Reset() { *m = GetFriendsInfoReq{} }
func (m *GetFriendsInfoReq) String() string { return proto.CompactTextString(m) } func (m *GetFriendsInfoReq) String() string { return proto.CompactTextString(m) }
func (*GetFriendsInfoReq) ProtoMessage() {} func (*GetFriendsInfoReq) ProtoMessage() {}
func (*GetFriendsInfoReq) Descriptor() ([]byte, []int) { func (*GetFriendsInfoReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_971ef02230ce9e85, []int{0} return fileDescriptor_friend_49d6bb15bb9f3775, []int{0}
} }
func (m *GetFriendsInfoReq) XXX_Unmarshal(b []byte) error { func (m *GetFriendsInfoReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetFriendsInfoReq.Unmarshal(m, b) return xxx_messageInfo_GetFriendsInfoReq.Unmarshal(m, b)
@ -81,7 +81,7 @@ func (m *GetFriendsInfoResp) Reset() { *m = GetFriendsInfoResp{} }
func (m *GetFriendsInfoResp) String() string { return proto.CompactTextString(m) } func (m *GetFriendsInfoResp) String() string { return proto.CompactTextString(m) }
func (*GetFriendsInfoResp) ProtoMessage() {} func (*GetFriendsInfoResp) ProtoMessage() {}
func (*GetFriendsInfoResp) Descriptor() ([]byte, []int) { func (*GetFriendsInfoResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_971ef02230ce9e85, []int{1} return fileDescriptor_friend_49d6bb15bb9f3775, []int{1}
} }
func (m *GetFriendsInfoResp) XXX_Unmarshal(b []byte) error { func (m *GetFriendsInfoResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetFriendsInfoResp.Unmarshal(m, b) return xxx_messageInfo_GetFriendsInfoResp.Unmarshal(m, b)
@ -112,6 +112,7 @@ type AddFriendReq struct {
FromUserID string `protobuf:"bytes,1,opt,name=fromUserID" json:"fromUserID,omitempty"` FromUserID string `protobuf:"bytes,1,opt,name=fromUserID" json:"fromUserID,omitempty"`
ToUserID string `protobuf:"bytes,2,opt,name=toUserID" json:"toUserID,omitempty"` ToUserID string `protobuf:"bytes,2,opt,name=toUserID" json:"toUserID,omitempty"`
ReqMsg string `protobuf:"bytes,3,opt,name=reqMsg" json:"reqMsg,omitempty"` ReqMsg string `protobuf:"bytes,3,opt,name=reqMsg" json:"reqMsg,omitempty"`
Ex string `protobuf:"bytes,4,opt,name=ex" json:"ex,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"` XXX_sizecache int32 `json:"-"`
@ -121,7 +122,7 @@ func (m *AddFriendReq) Reset() { *m = AddFriendReq{} }
func (m *AddFriendReq) String() string { return proto.CompactTextString(m) } func (m *AddFriendReq) String() string { return proto.CompactTextString(m) }
func (*AddFriendReq) ProtoMessage() {} func (*AddFriendReq) ProtoMessage() {}
func (*AddFriendReq) Descriptor() ([]byte, []int) { func (*AddFriendReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_971ef02230ce9e85, []int{2} return fileDescriptor_friend_49d6bb15bb9f3775, []int{2}
} }
func (m *AddFriendReq) XXX_Unmarshal(b []byte) error { func (m *AddFriendReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AddFriendReq.Unmarshal(m, b) return xxx_messageInfo_AddFriendReq.Unmarshal(m, b)
@ -162,6 +163,13 @@ func (m *AddFriendReq) GetReqMsg() string {
return "" return ""
} }
func (m *AddFriendReq) GetEx() string {
if m != nil {
return m.Ex
}
return ""
}
type AddFriendResp struct { type AddFriendResp struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -172,7 +180,7 @@ func (m *AddFriendResp) Reset() { *m = AddFriendResp{} }
func (m *AddFriendResp) String() string { return proto.CompactTextString(m) } func (m *AddFriendResp) String() string { return proto.CompactTextString(m) }
func (*AddFriendResp) ProtoMessage() {} func (*AddFriendResp) ProtoMessage() {}
func (*AddFriendResp) Descriptor() ([]byte, []int) { func (*AddFriendResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_971ef02230ce9e85, []int{3} return fileDescriptor_friend_49d6bb15bb9f3775, []int{3}
} }
func (m *AddFriendResp) XXX_Unmarshal(b []byte) error { func (m *AddFriendResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AddFriendResp.Unmarshal(m, b) return xxx_messageInfo_AddFriendResp.Unmarshal(m, b)
@ -204,7 +212,7 @@ func (m *ImportFriendReq) Reset() { *m = ImportFriendReq{} }
func (m *ImportFriendReq) String() string { return proto.CompactTextString(m) } func (m *ImportFriendReq) String() string { return proto.CompactTextString(m) }
func (*ImportFriendReq) ProtoMessage() {} func (*ImportFriendReq) ProtoMessage() {}
func (*ImportFriendReq) Descriptor() ([]byte, []int) { func (*ImportFriendReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_971ef02230ce9e85, []int{4} return fileDescriptor_friend_49d6bb15bb9f3775, []int{4}
} }
func (m *ImportFriendReq) XXX_Unmarshal(b []byte) error { func (m *ImportFriendReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ImportFriendReq.Unmarshal(m, b) return xxx_messageInfo_ImportFriendReq.Unmarshal(m, b)
@ -248,7 +256,7 @@ func (m *ImportFriendResp) Reset() { *m = ImportFriendResp{} }
func (m *ImportFriendResp) String() string { return proto.CompactTextString(m) } func (m *ImportFriendResp) String() string { return proto.CompactTextString(m) }
func (*ImportFriendResp) ProtoMessage() {} func (*ImportFriendResp) ProtoMessage() {}
func (*ImportFriendResp) Descriptor() ([]byte, []int) { func (*ImportFriendResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_971ef02230ce9e85, []int{5} return fileDescriptor_friend_49d6bb15bb9f3775, []int{5}
} }
func (m *ImportFriendResp) XXX_Unmarshal(b []byte) error { func (m *ImportFriendResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ImportFriendResp.Unmarshal(m, b) return xxx_messageInfo_ImportFriendResp.Unmarshal(m, b)
@ -280,7 +288,7 @@ func (m *GetToFriendApplyListReq) Reset() { *m = GetToFriendApplyListReq
func (m *GetToFriendApplyListReq) String() string { return proto.CompactTextString(m) } func (m *GetToFriendApplyListReq) String() string { return proto.CompactTextString(m) }
func (*GetToFriendApplyListReq) ProtoMessage() {} func (*GetToFriendApplyListReq) ProtoMessage() {}
func (*GetToFriendApplyListReq) Descriptor() ([]byte, []int) { func (*GetToFriendApplyListReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_971ef02230ce9e85, []int{6} return fileDescriptor_friend_49d6bb15bb9f3775, []int{6}
} }
func (m *GetToFriendApplyListReq) XXX_Unmarshal(b []byte) error { func (m *GetToFriendApplyListReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetToFriendApplyListReq.Unmarshal(m, b) return xxx_messageInfo_GetToFriendApplyListReq.Unmarshal(m, b)
@ -326,7 +334,7 @@ func (m *GetToFriendApplyListResp) Reset() { *m = GetToFriendApplyListRe
func (m *GetToFriendApplyListResp) String() string { return proto.CompactTextString(m) } func (m *GetToFriendApplyListResp) String() string { return proto.CompactTextString(m) }
func (*GetToFriendApplyListResp) ProtoMessage() {} func (*GetToFriendApplyListResp) ProtoMessage() {}
func (*GetToFriendApplyListResp) Descriptor() ([]byte, []int) { func (*GetToFriendApplyListResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_971ef02230ce9e85, []int{7} return fileDescriptor_friend_49d6bb15bb9f3775, []int{7}
} }
func (m *GetToFriendApplyListResp) XXX_Unmarshal(b []byte) error { func (m *GetToFriendApplyListResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetToFriendApplyListResp.Unmarshal(m, b) return xxx_messageInfo_GetToFriendApplyListResp.Unmarshal(m, b)
@ -372,7 +380,7 @@ func (m *GetFriendListReq) Reset() { *m = GetFriendListReq{} }
func (m *GetFriendListReq) String() string { return proto.CompactTextString(m) } func (m *GetFriendListReq) String() string { return proto.CompactTextString(m) }
func (*GetFriendListReq) ProtoMessage() {} func (*GetFriendListReq) ProtoMessage() {}
func (*GetFriendListReq) Descriptor() ([]byte, []int) { func (*GetFriendListReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_971ef02230ce9e85, []int{8} return fileDescriptor_friend_49d6bb15bb9f3775, []int{8}
} }
func (m *GetFriendListReq) XXX_Unmarshal(b []byte) error { func (m *GetFriendListReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetFriendListReq.Unmarshal(m, b) return xxx_messageInfo_GetFriendListReq.Unmarshal(m, b)
@ -418,7 +426,7 @@ func (m *GetFriendListResp) Reset() { *m = GetFriendListResp{} }
func (m *GetFriendListResp) String() string { return proto.CompactTextString(m) } func (m *GetFriendListResp) String() string { return proto.CompactTextString(m) }
func (*GetFriendListResp) ProtoMessage() {} func (*GetFriendListResp) ProtoMessage() {}
func (*GetFriendListResp) Descriptor() ([]byte, []int) { func (*GetFriendListResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_971ef02230ce9e85, []int{9} return fileDescriptor_friend_49d6bb15bb9f3775, []int{9}
} }
func (m *GetFriendListResp) XXX_Unmarshal(b []byte) error { func (m *GetFriendListResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetFriendListResp.Unmarshal(m, b) return xxx_messageInfo_GetFriendListResp.Unmarshal(m, b)
@ -464,7 +472,7 @@ func (m *AddBlacklistReq) Reset() { *m = AddBlacklistReq{} }
func (m *AddBlacklistReq) String() string { return proto.CompactTextString(m) } func (m *AddBlacklistReq) String() string { return proto.CompactTextString(m) }
func (*AddBlacklistReq) ProtoMessage() {} func (*AddBlacklistReq) ProtoMessage() {}
func (*AddBlacklistReq) Descriptor() ([]byte, []int) { func (*AddBlacklistReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_971ef02230ce9e85, []int{10} return fileDescriptor_friend_49d6bb15bb9f3775, []int{10}
} }
func (m *AddBlacklistReq) XXX_Unmarshal(b []byte) error { func (m *AddBlacklistReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AddBlacklistReq.Unmarshal(m, b) return xxx_messageInfo_AddBlacklistReq.Unmarshal(m, b)
@ -508,7 +516,7 @@ func (m *AddBlacklistResp) Reset() { *m = AddBlacklistResp{} }
func (m *AddBlacklistResp) String() string { return proto.CompactTextString(m) } func (m *AddBlacklistResp) String() string { return proto.CompactTextString(m) }
func (*AddBlacklistResp) ProtoMessage() {} func (*AddBlacklistResp) ProtoMessage() {}
func (*AddBlacklistResp) Descriptor() ([]byte, []int) { func (*AddBlacklistResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_971ef02230ce9e85, []int{11} return fileDescriptor_friend_49d6bb15bb9f3775, []int{11}
} }
func (m *AddBlacklistResp) XXX_Unmarshal(b []byte) error { func (m *AddBlacklistResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AddBlacklistResp.Unmarshal(m, b) return xxx_messageInfo_AddBlacklistResp.Unmarshal(m, b)
@ -540,7 +548,7 @@ func (m *RemoveBlacklistReq) Reset() { *m = RemoveBlacklistReq{} }
func (m *RemoveBlacklistReq) String() string { return proto.CompactTextString(m) } func (m *RemoveBlacklistReq) String() string { return proto.CompactTextString(m) }
func (*RemoveBlacklistReq) ProtoMessage() {} func (*RemoveBlacklistReq) ProtoMessage() {}
func (*RemoveBlacklistReq) Descriptor() ([]byte, []int) { func (*RemoveBlacklistReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_971ef02230ce9e85, []int{12} return fileDescriptor_friend_49d6bb15bb9f3775, []int{12}
} }
func (m *RemoveBlacklistReq) XXX_Unmarshal(b []byte) error { func (m *RemoveBlacklistReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RemoveBlacklistReq.Unmarshal(m, b) return xxx_messageInfo_RemoveBlacklistReq.Unmarshal(m, b)
@ -584,7 +592,7 @@ func (m *RemoveBlacklistResp) Reset() { *m = RemoveBlacklistResp{} }
func (m *RemoveBlacklistResp) String() string { return proto.CompactTextString(m) } func (m *RemoveBlacklistResp) String() string { return proto.CompactTextString(m) }
func (*RemoveBlacklistResp) ProtoMessage() {} func (*RemoveBlacklistResp) ProtoMessage() {}
func (*RemoveBlacklistResp) Descriptor() ([]byte, []int) { func (*RemoveBlacklistResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_971ef02230ce9e85, []int{13} return fileDescriptor_friend_49d6bb15bb9f3775, []int{13}
} }
func (m *RemoveBlacklistResp) XXX_Unmarshal(b []byte) error { func (m *RemoveBlacklistResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RemoveBlacklistResp.Unmarshal(m, b) return xxx_messageInfo_RemoveBlacklistResp.Unmarshal(m, b)
@ -616,7 +624,7 @@ func (m *GetBlacklistReq) Reset() { *m = GetBlacklistReq{} }
func (m *GetBlacklistReq) String() string { return proto.CompactTextString(m) } func (m *GetBlacklistReq) String() string { return proto.CompactTextString(m) }
func (*GetBlacklistReq) ProtoMessage() {} func (*GetBlacklistReq) ProtoMessage() {}
func (*GetBlacklistReq) Descriptor() ([]byte, []int) { func (*GetBlacklistReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_971ef02230ce9e85, []int{14} return fileDescriptor_friend_49d6bb15bb9f3775, []int{14}
} }
func (m *GetBlacklistReq) XXX_Unmarshal(b []byte) error { func (m *GetBlacklistReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetBlacklistReq.Unmarshal(m, b) return xxx_messageInfo_GetBlacklistReq.Unmarshal(m, b)
@ -662,7 +670,7 @@ func (m *GetBlacklistResp) Reset() { *m = GetBlacklistResp{} }
func (m *GetBlacklistResp) String() string { return proto.CompactTextString(m) } func (m *GetBlacklistResp) String() string { return proto.CompactTextString(m) }
func (*GetBlacklistResp) ProtoMessage() {} func (*GetBlacklistResp) ProtoMessage() {}
func (*GetBlacklistResp) Descriptor() ([]byte, []int) { func (*GetBlacklistResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_971ef02230ce9e85, []int{15} return fileDescriptor_friend_49d6bb15bb9f3775, []int{15}
} }
func (m *GetBlacklistResp) XXX_Unmarshal(b []byte) error { func (m *GetBlacklistResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetBlacklistResp.Unmarshal(m, b) return xxx_messageInfo_GetBlacklistResp.Unmarshal(m, b)
@ -708,7 +716,7 @@ func (m *IsFriendReq) Reset() { *m = IsFriendReq{} }
func (m *IsFriendReq) String() string { return proto.CompactTextString(m) } func (m *IsFriendReq) String() string { return proto.CompactTextString(m) }
func (*IsFriendReq) ProtoMessage() {} func (*IsFriendReq) ProtoMessage() {}
func (*IsFriendReq) Descriptor() ([]byte, []int) { func (*IsFriendReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_971ef02230ce9e85, []int{16} return fileDescriptor_friend_49d6bb15bb9f3775, []int{16}
} }
func (m *IsFriendReq) XXX_Unmarshal(b []byte) error { func (m *IsFriendReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_IsFriendReq.Unmarshal(m, b) return xxx_messageInfo_IsFriendReq.Unmarshal(m, b)
@ -753,7 +761,7 @@ func (m *IsFriendResp) Reset() { *m = IsFriendResp{} }
func (m *IsFriendResp) String() string { return proto.CompactTextString(m) } func (m *IsFriendResp) String() string { return proto.CompactTextString(m) }
func (*IsFriendResp) ProtoMessage() {} func (*IsFriendResp) ProtoMessage() {}
func (*IsFriendResp) Descriptor() ([]byte, []int) { func (*IsFriendResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_971ef02230ce9e85, []int{17} return fileDescriptor_friend_49d6bb15bb9f3775, []int{17}
} }
func (m *IsFriendResp) XXX_Unmarshal(b []byte) error { func (m *IsFriendResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_IsFriendResp.Unmarshal(m, b) return xxx_messageInfo_IsFriendResp.Unmarshal(m, b)
@ -792,7 +800,7 @@ func (m *IsInBlackListReq) Reset() { *m = IsInBlackListReq{} }
func (m *IsInBlackListReq) String() string { return proto.CompactTextString(m) } func (m *IsInBlackListReq) String() string { return proto.CompactTextString(m) }
func (*IsInBlackListReq) ProtoMessage() {} func (*IsInBlackListReq) ProtoMessage() {}
func (*IsInBlackListReq) Descriptor() ([]byte, []int) { func (*IsInBlackListReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_971ef02230ce9e85, []int{18} return fileDescriptor_friend_49d6bb15bb9f3775, []int{18}
} }
func (m *IsInBlackListReq) XXX_Unmarshal(b []byte) error { func (m *IsInBlackListReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_IsInBlackListReq.Unmarshal(m, b) return xxx_messageInfo_IsInBlackListReq.Unmarshal(m, b)
@ -837,7 +845,7 @@ func (m *IsInBlackListResp) Reset() { *m = IsInBlackListResp{} }
func (m *IsInBlackListResp) String() string { return proto.CompactTextString(m) } func (m *IsInBlackListResp) String() string { return proto.CompactTextString(m) }
func (*IsInBlackListResp) ProtoMessage() {} func (*IsInBlackListResp) ProtoMessage() {}
func (*IsInBlackListResp) Descriptor() ([]byte, []int) { func (*IsInBlackListResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_971ef02230ce9e85, []int{19} return fileDescriptor_friend_49d6bb15bb9f3775, []int{19}
} }
func (m *IsInBlackListResp) XXX_Unmarshal(b []byte) error { func (m *IsInBlackListResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_IsInBlackListResp.Unmarshal(m, b) return xxx_messageInfo_IsInBlackListResp.Unmarshal(m, b)
@ -876,7 +884,7 @@ func (m *DeleteFriendReq) Reset() { *m = DeleteFriendReq{} }
func (m *DeleteFriendReq) String() string { return proto.CompactTextString(m) } func (m *DeleteFriendReq) String() string { return proto.CompactTextString(m) }
func (*DeleteFriendReq) ProtoMessage() {} func (*DeleteFriendReq) ProtoMessage() {}
func (*DeleteFriendReq) Descriptor() ([]byte, []int) { func (*DeleteFriendReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_971ef02230ce9e85, []int{20} return fileDescriptor_friend_49d6bb15bb9f3775, []int{20}
} }
func (m *DeleteFriendReq) XXX_Unmarshal(b []byte) error { func (m *DeleteFriendReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeleteFriendReq.Unmarshal(m, b) return xxx_messageInfo_DeleteFriendReq.Unmarshal(m, b)
@ -920,7 +928,7 @@ func (m *DeleteFriendResp) Reset() { *m = DeleteFriendResp{} }
func (m *DeleteFriendResp) String() string { return proto.CompactTextString(m) } func (m *DeleteFriendResp) String() string { return proto.CompactTextString(m) }
func (*DeleteFriendResp) ProtoMessage() {} func (*DeleteFriendResp) ProtoMessage() {}
func (*DeleteFriendResp) Descriptor() ([]byte, []int) { func (*DeleteFriendResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_971ef02230ce9e85, []int{21} return fileDescriptor_friend_49d6bb15bb9f3775, []int{21}
} }
func (m *DeleteFriendResp) XXX_Unmarshal(b []byte) error { func (m *DeleteFriendResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeleteFriendResp.Unmarshal(m, b) return xxx_messageInfo_DeleteFriendResp.Unmarshal(m, b)
@ -955,7 +963,7 @@ func (m *FriendApplyResponseReq) Reset() { *m = FriendApplyResponseReq{}
func (m *FriendApplyResponseReq) String() string { return proto.CompactTextString(m) } func (m *FriendApplyResponseReq) String() string { return proto.CompactTextString(m) }
func (*FriendApplyResponseReq) ProtoMessage() {} func (*FriendApplyResponseReq) ProtoMessage() {}
func (*FriendApplyResponseReq) Descriptor() ([]byte, []int) { func (*FriendApplyResponseReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_971ef02230ce9e85, []int{22} return fileDescriptor_friend_49d6bb15bb9f3775, []int{22}
} }
func (m *FriendApplyResponseReq) XXX_Unmarshal(b []byte) error { func (m *FriendApplyResponseReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FriendApplyResponseReq.Unmarshal(m, b) return xxx_messageInfo_FriendApplyResponseReq.Unmarshal(m, b)
@ -1013,7 +1021,7 @@ func (m *FriendApplyResponseResp) Reset() { *m = FriendApplyResponseResp
func (m *FriendApplyResponseResp) String() string { return proto.CompactTextString(m) } func (m *FriendApplyResponseResp) String() string { return proto.CompactTextString(m) }
func (*FriendApplyResponseResp) ProtoMessage() {} func (*FriendApplyResponseResp) ProtoMessage() {}
func (*FriendApplyResponseResp) Descriptor() ([]byte, []int) { func (*FriendApplyResponseResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_971ef02230ce9e85, []int{23} return fileDescriptor_friend_49d6bb15bb9f3775, []int{23}
} }
func (m *FriendApplyResponseResp) XXX_Unmarshal(b []byte) error { func (m *FriendApplyResponseResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FriendApplyResponseResp.Unmarshal(m, b) return xxx_messageInfo_FriendApplyResponseResp.Unmarshal(m, b)
@ -1046,7 +1054,7 @@ func (m *SetFriendRemarkReq) Reset() { *m = SetFriendRemarkReq{} }
func (m *SetFriendRemarkReq) String() string { return proto.CompactTextString(m) } func (m *SetFriendRemarkReq) String() string { return proto.CompactTextString(m) }
func (*SetFriendRemarkReq) ProtoMessage() {} func (*SetFriendRemarkReq) ProtoMessage() {}
func (*SetFriendRemarkReq) Descriptor() ([]byte, []int) { func (*SetFriendRemarkReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_971ef02230ce9e85, []int{24} return fileDescriptor_friend_49d6bb15bb9f3775, []int{24}
} }
func (m *SetFriendRemarkReq) XXX_Unmarshal(b []byte) error { func (m *SetFriendRemarkReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetFriendRemarkReq.Unmarshal(m, b) return xxx_messageInfo_SetFriendRemarkReq.Unmarshal(m, b)
@ -1097,7 +1105,7 @@ func (m *SetFriendRemarkResp) Reset() { *m = SetFriendRemarkResp{} }
func (m *SetFriendRemarkResp) String() string { return proto.CompactTextString(m) } func (m *SetFriendRemarkResp) String() string { return proto.CompactTextString(m) }
func (*SetFriendRemarkResp) ProtoMessage() {} func (*SetFriendRemarkResp) ProtoMessage() {}
func (*SetFriendRemarkResp) Descriptor() ([]byte, []int) { func (*SetFriendRemarkResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_971ef02230ce9e85, []int{25} return fileDescriptor_friend_49d6bb15bb9f3775, []int{25}
} }
func (m *SetFriendRemarkResp) XXX_Unmarshal(b []byte) error { func (m *SetFriendRemarkResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetFriendRemarkResp.Unmarshal(m, b) return xxx_messageInfo_SetFriendRemarkResp.Unmarshal(m, b)
@ -1129,7 +1137,7 @@ func (m *GetFromFriendApplyListReq) Reset() { *m = GetFromFriendApplyLis
func (m *GetFromFriendApplyListReq) String() string { return proto.CompactTextString(m) } func (m *GetFromFriendApplyListReq) String() string { return proto.CompactTextString(m) }
func (*GetFromFriendApplyListReq) ProtoMessage() {} func (*GetFromFriendApplyListReq) ProtoMessage() {}
func (*GetFromFriendApplyListReq) Descriptor() ([]byte, []int) { func (*GetFromFriendApplyListReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_971ef02230ce9e85, []int{26} return fileDescriptor_friend_49d6bb15bb9f3775, []int{26}
} }
func (m *GetFromFriendApplyListReq) XXX_Unmarshal(b []byte) error { func (m *GetFromFriendApplyListReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetFromFriendApplyListReq.Unmarshal(m, b) return xxx_messageInfo_GetFromFriendApplyListReq.Unmarshal(m, b)
@ -1175,7 +1183,7 @@ func (m *GetFromFriendApplyListResp) Reset() { *m = GetFromFriendApplyLi
func (m *GetFromFriendApplyListResp) String() string { return proto.CompactTextString(m) } func (m *GetFromFriendApplyListResp) String() string { return proto.CompactTextString(m) }
func (*GetFromFriendApplyListResp) ProtoMessage() {} func (*GetFromFriendApplyListResp) ProtoMessage() {}
func (*GetFromFriendApplyListResp) Descriptor() ([]byte, []int) { func (*GetFromFriendApplyListResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_971ef02230ce9e85, []int{27} return fileDescriptor_friend_49d6bb15bb9f3775, []int{27}
} }
func (m *GetFromFriendApplyListResp) XXX_Unmarshal(b []byte) error { func (m *GetFromFriendApplyListResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetFromFriendApplyListResp.Unmarshal(m, b) return xxx_messageInfo_GetFromFriendApplyListResp.Unmarshal(m, b)
@ -1769,65 +1777,65 @@ var _Friend_serviceDesc = grpc.ServiceDesc{
Metadata: "friend/friend.proto", Metadata: "friend/friend.proto",
} }
func init() { proto.RegisterFile("friend/friend.proto", fileDescriptor_friend_971ef02230ce9e85) } func init() { proto.RegisterFile("friend/friend.proto", fileDescriptor_friend_49d6bb15bb9f3775) }
var fileDescriptor_friend_971ef02230ce9e85 = []byte{ var fileDescriptor_friend_49d6bb15bb9f3775 = []byte{
// 899 bytes of a gzipped FileDescriptorProto // 909 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0x5f, 0x6f, 0xdb, 0x36, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0x5f, 0x6f, 0xdb, 0x36,
0x10, 0x87, 0x93, 0x25, 0x88, 0x2f, 0x6e, 0xed, 0x5c, 0xd2, 0x44, 0xd1, 0xb6, 0xc6, 0x21, 0xf6, 0x10, 0x87, 0x9d, 0x25, 0x88, 0x2f, 0x6e, 0xec, 0x5c, 0xd2, 0x44, 0xd1, 0xb6, 0xc6, 0x21, 0xf6,
0x10, 0x14, 0x68, 0x0c, 0x64, 0x18, 0x30, 0x60, 0x4f, 0x2e, 0xb2, 0x06, 0x1a, 0xea, 0x36, 0x53, 0x10, 0x14, 0x68, 0x0c, 0x64, 0x18, 0x30, 0x60, 0x4f, 0x2e, 0xb2, 0x06, 0x1a, 0xea, 0x36, 0x53,
0xb7, 0x01, 0xdb, 0x30, 0x18, 0x4a, 0x4d, 0xbb, 0x42, 0x64, 0x89, 0xd1, 0xc9, 0x0d, 0xf2, 0x36, 0xb7, 0x01, 0xdb, 0x30, 0x18, 0x6a, 0x4d, 0xbb, 0x42, 0x64, 0x89, 0xd1, 0x29, 0x4d, 0xf3, 0x36,
0xec, 0x61, 0x1f, 0x61, 0x9f, 0x77, 0x10, 0x69, 0x89, 0xd4, 0xbf, 0xb6, 0x68, 0xbc, 0x3d, 0xc9, 0xec, 0x61, 0x1f, 0x61, 0x9f, 0x77, 0x10, 0x69, 0x89, 0xd4, 0xbf, 0xb6, 0x68, 0xbd, 0x3d, 0xc9,
0x3c, 0xde, 0xff, 0xa3, 0x7f, 0x3f, 0x12, 0x76, 0xa7, 0xb1, 0xcf, 0xc3, 0xc9, 0x40, 0x7d, 0x4e, 0x3c, 0xde, 0xff, 0xa3, 0x7f, 0x3f, 0x12, 0x76, 0x67, 0xb1, 0xcf, 0xc3, 0xe9, 0x50, 0x7d, 0x4e,
0x45, 0x1c, 0x25, 0x11, 0x6e, 0xaa, 0x95, 0x7d, 0xf2, 0x4a, 0xf0, 0xf0, 0xa9, 0x33, 0x7a, 0xfa, 0x45, 0x1c, 0x25, 0x11, 0x6e, 0xa8, 0x95, 0x7d, 0xf2, 0x5c, 0xf0, 0xf0, 0x91, 0x33, 0x7e, 0xf4,
0x9a, 0xc7, 0xef, 0x78, 0x3c, 0x10, 0xd7, 0xb3, 0x81, 0xd4, 0x18, 0xd0, 0xe4, 0x7a, 0x7c, 0x4b, 0x82, 0xc7, 0x6f, 0x78, 0x3c, 0x14, 0x57, 0xf3, 0xa1, 0xd4, 0x18, 0xd2, 0xf4, 0x6a, 0x72, 0x4b,
0x83, 0x5b, 0x52, 0x16, 0xec, 0x47, 0xd8, 0xb9, 0xe0, 0xc9, 0x73, 0x69, 0x46, 0x4e, 0x38, 0x8d, 0xc3, 0x5b, 0x52, 0x16, 0xec, 0x47, 0xd8, 0xb9, 0xe0, 0xc9, 0x13, 0x69, 0x46, 0x4e, 0x38, 0x8b,
0x5c, 0x7e, 0x83, 0x8f, 0x01, 0xa6, 0x71, 0x34, 0xff, 0x99, 0x78, 0xec, 0x9c, 0x5b, 0xad, 0x7e, 0x5c, 0x7e, 0x8d, 0x0f, 0x00, 0x66, 0x71, 0xb4, 0xf8, 0x99, 0x78, 0xec, 0x9c, 0x5b, 0xad, 0x41,
0xeb, 0xa4, 0xed, 0x1a, 0x12, 0xfc, 0x02, 0xda, 0x49, 0xa4, 0x7e, 0x93, 0xb5, 0xd6, 0x5f, 0x3f, 0xeb, 0xa4, 0xe3, 0x1a, 0x12, 0xfc, 0x02, 0x3a, 0x49, 0xa4, 0x7e, 0x93, 0xd5, 0x1e, 0xac, 0x9d,
0x69, 0xbb, 0x5a, 0xc0, 0x7e, 0x07, 0x2c, 0xbb, 0x24, 0x81, 0xdf, 0xc3, 0x43, 0x25, 0x4a, 0x25, 0x74, 0x5c, 0x2d, 0x60, 0xbf, 0x03, 0x96, 0x5d, 0x92, 0xc0, 0xef, 0x61, 0x5b, 0x89, 0x52, 0xc9,
0x2f, 0x7c, 0x4a, 0xac, 0x56, 0x7f, 0xfd, 0x64, 0xfb, 0xec, 0xcb, 0x53, 0x92, 0x39, 0x8e, 0x3d, 0x53, 0x9f, 0x12, 0xab, 0x35, 0x58, 0x3b, 0xd9, 0x3a, 0xfb, 0xf2, 0x94, 0x64, 0x8e, 0x13, 0x4f,
0xe1, 0x8f, 0x85, 0x17, 0x7b, 0x73, 0x3a, 0xd5, 0x8a, 0x6e, 0xc9, 0x88, 0x5d, 0x41, 0x67, 0x38, 0xf8, 0x13, 0xe1, 0xc5, 0xde, 0x82, 0x4e, 0xb5, 0xa2, 0x5b, 0x32, 0x62, 0x31, 0x74, 0x47, 0xd3,
0x99, 0x28, 0xe1, 0xc7, 0xa4, 0x6a, 0xc3, 0x56, 0x96, 0x99, 0xb5, 0x26, 0x77, 0xf3, 0x35, 0xee, 0xa9, 0x12, 0x7e, 0x48, 0xaa, 0x36, 0x6c, 0x66, 0x99, 0x59, 0x6d, 0xb9, 0x9b, 0xaf, 0x71, 0x1f,
0xc3, 0x66, 0xcc, 0x6f, 0x46, 0x34, 0xb3, 0xd6, 0xe5, 0xce, 0x72, 0xc5, 0xba, 0xf0, 0xc0, 0x88, 0x36, 0x62, 0x7e, 0x3d, 0xa6, 0xb9, 0xb5, 0x26, 0x77, 0x96, 0x2b, 0xdc, 0x86, 0x36, 0x7f, 0x6b,
0x41, 0x82, 0xfd, 0x01, 0x5d, 0x67, 0x2e, 0xa2, 0x38, 0xd1, 0x71, 0x9f, 0x40, 0x4f, 0x2d, 0x94, 0x7d, 0x26, 0x65, 0x6d, 0xfe, 0x96, 0xf5, 0xe0, 0x9e, 0x11, 0x93, 0x04, 0xfb, 0x03, 0x7a, 0xce,
0xaf, 0xbc, 0xa0, 0xb6, 0x5b, 0x91, 0xa7, 0x39, 0x3e, 0xd7, 0x39, 0xaa, 0x2c, 0x0c, 0x09, 0x43, 0x42, 0x44, 0x71, 0xa2, 0xf3, 0x78, 0x08, 0x7d, 0xb5, 0x50, 0xbe, 0xf3, 0x02, 0x3b, 0x6e, 0x45,
0xe8, 0x15, 0xdd, 0x93, 0x60, 0xb7, 0x70, 0x70, 0xc1, 0x93, 0x9f, 0x22, 0x25, 0x1a, 0x0a, 0x11, 0x9e, 0xe6, 0xfc, 0x44, 0xe7, 0xac, 0xb2, 0x32, 0x24, 0x0c, 0xa1, 0x5f, 0x74, 0x4f, 0x82, 0xdd,
0xdc, 0xa5, 0xbe, 0xd2, 0xd0, 0xfb, 0xb0, 0xb9, 0x30, 0xcb, 0x5d, 0xae, 0xf0, 0x1c, 0x40, 0x78, 0xc2, 0xc1, 0x05, 0x4f, 0x7e, 0x8a, 0x94, 0x68, 0x24, 0x44, 0x70, 0x97, 0xfa, 0x4a, 0x43, 0xef,
0x33, 0x3f, 0xf4, 0x12, 0x3f, 0x0a, 0x65, 0x98, 0xed, 0xb3, 0xaf, 0x6a, 0xba, 0xeb, 0xf2, 0x9b, 0xc3, 0xc6, 0x8d, 0x59, 0xfe, 0x72, 0x85, 0xe7, 0x00, 0xc2, 0x9b, 0xfb, 0xa1, 0x97, 0xf8, 0x51,
0x05, 0xa7, 0xe4, 0x32, 0xd7, 0x75, 0x0d, 0x3b, 0xf6, 0x67, 0x0b, 0xac, 0xfa, 0xc8, 0x24, 0xf0, 0x28, 0xc3, 0x6c, 0x9d, 0x7d, 0x55, 0xd3, 0x6d, 0x97, 0x5f, 0xdf, 0x70, 0x4a, 0x2e, 0x73, 0x5d,
0x25, 0xec, 0xe4, 0x2d, 0x48, 0x7d, 0x18, 0x73, 0xec, 0x37, 0xce, 0x71, 0xa9, 0xeb, 0x56, 0x4d, 0xd7, 0xb0, 0x63, 0x7f, 0xb6, 0xc0, 0xaa, 0x8f, 0x4c, 0x02, 0x9f, 0xc1, 0x4e, 0xde, 0x82, 0xd4,
0x71, 0x0f, 0x36, 0x92, 0x28, 0xf1, 0x02, 0x99, 0xed, 0x86, 0xab, 0x16, 0x4c, 0x40, 0x2f, 0x3f, 0x87, 0x31, 0xd7, 0x41, 0xe3, 0x5c, 0x97, 0xba, 0x6e, 0xd5, 0x14, 0xf7, 0x60, 0x3d, 0x89, 0x12,
0x40, 0x59, 0xd1, 0xc5, 0xe2, 0x5a, 0x9f, 0x56, 0x9c, 0xd1, 0xba, 0x35, 0xb3, 0x75, 0x4c, 0x18, 0x2f, 0x90, 0xd9, 0xae, 0xbb, 0x6a, 0xc1, 0x04, 0xf4, 0xf3, 0x03, 0x95, 0x15, 0x5d, 0x2c, 0xae,
0xff, 0x82, 0xbc, 0xd8, 0xd5, 0x9c, 0xd8, 0x86, 0x1a, 0x47, 0xd0, 0x1d, 0x4e, 0x26, 0xcf, 0x02, 0xf5, 0x71, 0xc5, 0x19, 0xad, 0x6b, 0x9b, 0xad, 0x63, 0xc2, 0xf8, 0x57, 0xe4, 0xc5, 0xae, 0xe6,
0xef, 0xcd, 0x75, 0xb0, 0x2c, 0xf1, 0x1e, 0x47, 0x39, 0x3d, 0x42, 0x45, 0x77, 0x24, 0xd8, 0x25, 0x04, 0x37, 0xd4, 0x38, 0x86, 0xde, 0x68, 0x3a, 0x7d, 0x1c, 0x78, 0xaf, 0xae, 0x82, 0x65, 0x89,
0xa0, 0xcb, 0xe7, 0xd1, 0x3b, 0xbe, 0xb2, 0x28, 0x8f, 0x60, 0xb7, 0xe2, 0x91, 0x04, 0x8b, 0xa0, 0x9f, 0x70, 0xb4, 0xd3, 0x23, 0x54, 0x74, 0x47, 0x82, 0x5d, 0x02, 0xba, 0x7c, 0x11, 0xbd, 0xe1,
0x7b, 0xc1, 0x93, 0x42, 0x94, 0xff, 0xf6, 0x8c, 0xde, 0xc9, 0x03, 0x52, 0x48, 0x02, 0x5f, 0xc1, 0x2b, 0x8b, 0x72, 0x1f, 0x76, 0x2b, 0x1e, 0x49, 0xb0, 0x08, 0x7a, 0x17, 0x3c, 0x29, 0x44, 0xf9,
0x8e, 0x14, 0xc8, 0x54, 0x8b, 0x03, 0x3b, 0xae, 0x09, 0x70, 0xb9, 0xb8, 0x0a, 0xfc, 0x37, 0x99, 0x6f, 0xcf, 0xe8, 0x9d, 0x3c, 0x20, 0x85, 0x24, 0xf0, 0x39, 0xec, 0x48, 0x81, 0x4c, 0xb5, 0x38,
0xb2, 0x5b, 0xb5, 0x6d, 0x98, 0x9b, 0x03, 0xdb, 0x0e, 0xad, 0x04, 0x7e, 0xd8, 0x13, 0xe8, 0x68, 0xb0, 0xe3, 0x9a, 0x00, 0x97, 0x37, 0x2f, 0x03, 0xff, 0x55, 0xa6, 0xec, 0x56, 0x6d, 0x1b, 0xe6,
0x57, 0x24, 0x52, 0xdd, 0xf4, 0x1b, 0x85, 0xc4, 0xa5, 0xa7, 0x2d, 0x37, 0x5f, 0xb3, 0x97, 0xd0, 0xe6, 0xc0, 0x96, 0x43, 0x2b, 0x81, 0x23, 0xf6, 0x10, 0xba, 0xda, 0x15, 0x89, 0x54, 0x37, 0xfd,
0x73, 0xc8, 0x09, 0x65, 0x96, 0x2f, 0x56, 0x30, 0xc9, 0x01, 0xec, 0x94, 0xfc, 0x7d, 0x20, 0x81, 0x46, 0x21, 0x71, 0xe9, 0x69, 0xd3, 0xcd, 0xd7, 0xec, 0x19, 0xf4, 0x1d, 0x72, 0x42, 0x99, 0xe5,
0x11, 0x74, 0xcf, 0x79, 0xc0, 0x13, 0xbe, 0x9a, 0xda, 0x11, 0x7a, 0x45, 0x77, 0x24, 0xd8, 0x3f, 0xd3, 0x15, 0x4c, 0x72, 0x08, 0x3b, 0x25, 0x7f, 0xef, 0x49, 0x60, 0x0c, 0xbd, 0x73, 0x1e, 0xf0,
0x2d, 0xd8, 0x37, 0x40, 0x27, 0x0b, 0x7d, 0x5f, 0x94, 0x67, 0xd0, 0x79, 0xeb, 0x85, 0x93, 0x80, 0x84, 0xaf, 0xa6, 0x76, 0x84, 0x7e, 0xd1, 0x1d, 0x09, 0xf6, 0x4f, 0x0b, 0xf6, 0x0d, 0xd0, 0xc9,
0xbb, 0x9c, 0x16, 0x41, 0x22, 0xb1, 0x7e, 0xc3, 0x2d, 0xc8, 0x52, 0x42, 0x53, 0xeb, 0x94, 0x0c, 0x42, 0x7f, 0x2a, 0xea, 0x33, 0xe8, 0xbe, 0xf6, 0xc2, 0x69, 0xc0, 0x5d, 0x4e, 0x37, 0x41, 0x22,
0x3e, 0x93, 0x0e, 0xb4, 0x80, 0x1d, 0xc2, 0x41, 0x6d, 0x5e, 0x24, 0xd8, 0x5b, 0xc0, 0xd7, 0x3c, 0xb1, 0x7f, 0xdd, 0x2d, 0xc8, 0x52, 0x82, 0x53, 0xeb, 0x94, 0x1c, 0x14, 0x11, 0x68, 0x01, 0x3b,
0xc7, 0xed, 0xb9, 0x17, 0x5f, 0xaf, 0x84, 0x94, 0x52, 0x47, 0x9a, 0x94, 0xd2, 0x55, 0xfa, 0xdf, 0x84, 0x83, 0xda, 0xbc, 0x48, 0xb0, 0xd7, 0x80, 0x2f, 0x78, 0x8e, 0xdb, 0x0b, 0x2f, 0xbe, 0x5a,
0xab, 0x44, 0x22, 0xc1, 0xee, 0xe0, 0x50, 0x22, 0x57, 0x34, 0xff, 0xdf, 0x99, 0xe2, 0xaf, 0x16, 0x09, 0x49, 0xa5, 0x8e, 0x34, 0x49, 0xa5, 0xab, 0xf4, 0xbf, 0x57, 0x89, 0x44, 0x82, 0xdd, 0xc1,
0xd8, 0x4d, 0xb1, 0x15, 0x57, 0x4c, 0x3f, 0x9d, 0x2b, 0xa6, 0x1f, 0xc7, 0x15, 0x67, 0x7f, 0x6f, 0xa1, 0x44, 0xae, 0x68, 0xf1, 0xbf, 0x33, 0xc5, 0x5f, 0x2d, 0xb0, 0x9b, 0x62, 0x2b, 0xae, 0x98,
0xc1, 0xf2, 0xd2, 0x83, 0xdf, 0x42, 0xdb, 0xcb, 0x68, 0x1b, 0xf7, 0x4e, 0x97, 0x17, 0x23, 0xf3, 0x7d, 0x3c, 0x57, 0xcc, 0x3e, 0x8c, 0x2b, 0xce, 0xfe, 0xde, 0x84, 0xe5, 0x25, 0x08, 0xbf, 0x85,
0xb6, 0x60, 0x3f, 0xaa, 0x91, 0x92, 0xc0, 0x5f, 0x61, 0x6f, 0x56, 0x43, 0x79, 0x78, 0x94, 0xa9, 0x8e, 0x97, 0xd1, 0x36, 0xee, 0x9d, 0x2e, 0x2f, 0x4a, 0xe6, 0xed, 0xc1, 0xbe, 0x5f, 0x23, 0x25,
0x37, 0x50, 0xb1, 0xdd, 0x7f, 0xbf, 0x02, 0x09, 0x1c, 0xc3, 0xfe, 0xac, 0xb6, 0x47, 0x78, 0x6c, 0x81, 0xbf, 0xc2, 0xde, 0xbc, 0x86, 0xf2, 0xf0, 0x28, 0x53, 0x6f, 0xa0, 0x62, 0x7b, 0xf0, 0x6e,
0xd8, 0xd6, 0xcf, 0xcf, 0x66, 0x1f, 0x52, 0x21, 0x81, 0xe7, 0xf0, 0x60, 0x66, 0x52, 0x17, 0x5a, 0x05, 0x12, 0x38, 0x81, 0xfd, 0x79, 0x6d, 0x8f, 0xf0, 0xd8, 0xb0, 0xad, 0x9f, 0x9f, 0xcd, 0xde,
0x05, 0x23, 0x83, 0x43, 0xed, 0xc3, 0x86, 0x1d, 0x12, 0x38, 0x84, 0x8e, 0x67, 0xf0, 0x07, 0x1e, 0xa7, 0x42, 0x02, 0xcf, 0xe1, 0xde, 0xdc, 0xa4, 0x2e, 0xb4, 0x0a, 0x46, 0x06, 0x87, 0xda, 0x87,
0x18, 0x8d, 0x32, 0x81, 0xdd, 0xb6, 0xea, 0x37, 0x48, 0xe0, 0x0f, 0xd0, 0x8d, 0x8b, 0xe4, 0x80, 0x0d, 0x3b, 0x24, 0x70, 0x04, 0x5d, 0xcf, 0xe0, 0x0f, 0x3c, 0x30, 0x1a, 0x65, 0x02, 0xbb, 0x6d,
0x76, 0xa6, 0x5c, 0xe5, 0x21, 0xfb, 0xf3, 0xc6, 0x3d, 0x12, 0xf8, 0x0d, 0x6c, 0xf9, 0x4b, 0x68, 0xd5, 0x6f, 0x90, 0xc0, 0x1f, 0xa0, 0x17, 0x17, 0xc9, 0x01, 0xed, 0x4c, 0xb9, 0xca, 0x43, 0xf6,
0xc4, 0xdd, 0x4c, 0xd1, 0xc0, 0x5d, 0x7b, 0xaf, 0x2a, 0x54, 0xbd, 0xf0, 0x4d, 0x54, 0xd3, 0xbd, 0xe7, 0x8d, 0x7b, 0x24, 0xf0, 0x1b, 0xd8, 0xf4, 0x97, 0xd0, 0x88, 0xbb, 0x99, 0xa2, 0x81, 0xbb,
0x28, 0x83, 0xa7, 0xee, 0x45, 0x15, 0x06, 0x87, 0xd0, 0x99, 0x19, 0xec, 0xa2, 0x7b, 0x51, 0x22, 0xf6, 0x5e, 0x55, 0xa8, 0x7a, 0xe1, 0x9b, 0xa8, 0xa6, 0x7b, 0x51, 0x06, 0x4f, 0xdd, 0x8b, 0x2a,
0x39, 0xdb, 0xaa, 0xdf, 0x50, 0x2e, 0x26, 0x06, 0xbc, 0x69, 0x17, 0x25, 0x0c, 0xd5, 0x2e, 0xca, 0x0c, 0x8e, 0xa0, 0x3b, 0x37, 0xd8, 0x45, 0xf7, 0xa2, 0x44, 0x72, 0xb6, 0x55, 0xbf, 0xa1, 0x5c,
0x68, 0x88, 0xbf, 0x64, 0x37, 0xfc, 0x02, 0xe8, 0xe0, 0xe3, 0xcc, 0xa0, 0x1e, 0x29, 0xed, 0xa3, 0x4c, 0x0d, 0x78, 0xd3, 0x2e, 0x4a, 0x18, 0xaa, 0x5d, 0x94, 0xd1, 0x10, 0x7f, 0xc9, 0x6e, 0xfc,
0xf7, 0xee, 0xab, 0x31, 0x51, 0x11, 0x47, 0xf4, 0x98, 0xaa, 0x50, 0xa6, 0xc7, 0x54, 0x03, 0x3e, 0x05, 0xd0, 0xc1, 0x07, 0x99, 0x41, 0x3d, 0x52, 0xda, 0x47, 0xef, 0xdc, 0x57, 0x63, 0xa2, 0x22,
0x69, 0x99, 0xbe, 0x71, 0x71, 0xd5, 0x65, 0x96, 0x6e, 0xcb, 0xba, 0xcc, 0xf2, 0x3d, 0x17, 0x2f, 0x8e, 0xe8, 0x31, 0x55, 0xa1, 0x4c, 0x8f, 0xa9, 0x06, 0x7c, 0xd2, 0x32, 0x7d, 0xe3, 0xe2, 0xaa,
0xe0, 0xe1, 0xac, 0xf0, 0x58, 0xc0, 0xea, 0x29, 0xcd, 0xde, 0x25, 0xb6, 0xdd, 0xb4, 0x45, 0xe2, 0xcb, 0x2c, 0xdd, 0x96, 0x75, 0x99, 0xe5, 0x7b, 0x2e, 0x5e, 0xc0, 0xf6, 0xbc, 0xf0, 0x78, 0xc0,
0xd9, 0xf1, 0x6f, 0x47, 0xe9, 0xa3, 0x67, 0xec, 0x8c, 0x8c, 0xd7, 0x8e, 0x52, 0xff, 0x4e, 0x7d, 0xea, 0x29, 0xcd, 0xde, 0x29, 0xb6, 0xdd, 0xb4, 0x45, 0xe2, 0xf1, 0xf1, 0x6f, 0x47, 0xe9, 0x23,
0xae, 0x36, 0xa5, 0xf0, 0xeb, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x03, 0x49, 0x98, 0x1f, 0x3b, 0x68, 0xe2, 0x8c, 0x8d, 0xd7, 0x8f, 0x52, 0xff, 0x4e, 0x7d, 0x5e, 0x6e, 0x48, 0xe1, 0xd7, 0xff,
0x0d, 0x00, 0x00, 0x06, 0x00, 0x00, 0xff, 0xff, 0x3c, 0x16, 0xac, 0xa2, 0x4b, 0x0d, 0x00, 0x00,
} }

View File

@ -3,158 +3,159 @@ import "Open-IM-Server/pkg/proto/sdk_ws/ws.proto";
option go_package = "Open_IM/pkg/proto/friend;friend"; option go_package = "Open_IM/pkg/proto/friend;friend";
package friend; package friend;
message GetFriendsInfoReq{ message getFriendsInfoReq{
string fromUserID = 1; string ownerUserID = 1;
repeated string toUserIDs = 2; repeated string friendUserIDs = 2;
} }
message GetFriendsInfoResp{ message getFriendsInfoResp{
repeated server_api_params.FriendInfo FriendInfoList = 1; repeated server_api_params.FriendInfo FriendInfoList = 1;
} }
message AddFriendReq{ message addFriendReq{
string fromUserID = 1; string fromUserID = 1;
string toUserID = 2; string toUserID = 2;
string reqMsg = 3; string reqMsg = 3;
string ex = 4;
} }
message AddFriendResp{ message addFriendResp{
} }
message ImportFriendReq{ message importFriendReq{
repeated string FriendUserIDList = 1; string ownerUserID = 1;
string FromUserID = 2; repeated string friendUserIDs = 2;
} }
message ImportFriendResp{ message importFriendResp{
} }
message GetToFriendApplyListReq{ message getToFriendsApplyReq{
string userID = 1; string userID = 1;
server_api_params.RequestPagination pagination = 2; server_api_params.RequestPagination pagination = 2;
} }
message GetToFriendApplyListResp{ message getToFriendsApplyResp{
repeated server_api_params.FriendRequest FriendRequestList = 1; repeated server_api_params.FriendRequest FriendRequests = 1;
int32 total = 2; int32 total = 2;
} }
message GetFriendListReq{ message getFriendsReq{
server_api_params.RequestPagination pagination = 1; server_api_params.RequestPagination pagination = 1;
string userID = 2; string userID = 2;
} }
message GetFriendListResp{ message getFriendsResp{
repeated server_api_params.FriendInfo FriendInfoList = 1; repeated server_api_params.FriendInfo FriendsInfo = 1;
int32 total = 2; int32 total = 2;
} }
message AddBlacklistReq{ message addBlackReq{
string fromUserID = 1; string ownerUserID = 1;
string toUserID = 2; string blackUserID = 2;
} }
message AddBlacklistResp{ message addBlackResp{
} }
message RemoveBlacklistReq{ message removeBlackReq{
string fromUserID = 1; string ownerUserID = 1;
string toUserID = 2; string blackUserID = 2;
} }
message RemoveBlacklistResp{ message removeBlackReqResp{
} }
message GetBlacklistReq{ message getBlacksReq{
string userID = 1; string userID = 1;
server_api_params.RequestPagination pagination = 2; server_api_params.RequestPagination pagination = 2;
} }
message GetBlacklistResp{ message getBlacksResp{
repeated server_api_params.PublicUserInfo BlackUserInfoList = 1; repeated server_api_params.PublicUserInfo BlackUserInfoList = 1;
int32 total = 2; int32 total = 2;
} }
message IsFriendReq{ message isFriendReq{
string fromUserID = 1; string ownerUserID = 1;
string toUserID = 2; string friendUserID = 2;
} }
message IsFriendResp{ message isFriendResp{
bool Response = 1; bool response = 1;
} }
message IsInBlackListReq{ message isBlackReq{
string fromUserID = 1; string ownerUserID = 1;
string toUserID = 2; string blackUserID = 2;
} }
message IsInBlackListResp{ message isBlackResp{
bool Response = 1; bool response = 1;
} }
message DeleteFriendReq{ message deleteFriendReq{
string fromUserID = 1; string ownerUserID = 1;
string toUserID = 2; string friendUserID = 2;
} }
message DeleteFriendResp{ message deleteFriendResp{
} }
//process //process
message FriendApplyResponseReq{ message respondFriendApplyReq{
string fromUserID = 1; string fromUserID = 1; //
string toUserID = 2; string toUserID = 2; //
int32 handleResult = 3; int32 handleResult = 3;
string handleMsg = 4; string handleMsg = 4;
} }
message FriendApplyResponseResp{ message respondFriendApplyResp{
} }
message SetFriendRemarkReq{ message setFriendRemarkReq{
string fromUserID = 1; string ownerUserID = 1;
string toUserID = 2; string friendUserID = 2;
string remark = 3; string remark = 3;
} }
message SetFriendRemarkResp{ message setFriendRemarkResp{
} }
message GetFromFriendApplyListReq{ message getFromFriendsApplyReq{
string userID = 1; string userID = 1;
server_api_params.RequestPagination pagination = 2; server_api_params.RequestPagination pagination = 2;
} }
message GetFromFriendApplyListResp{ message getFromFriendsApplyResp{
repeated server_api_params.FriendRequest friendRequestList = 1; repeated server_api_params.FriendRequest friendRequests = 1;
int32 total = 2; int32 total = 2;
} }
service friend{ service friend{
// //
rpc addFriend(AddFriendReq) returns(AddFriendResp); rpc addFriend(addFriendReq) returns(addFriendResp);
// //
rpc getToFriendApplyList(GetToFriendApplyListReq) returns(GetToFriendApplyListResp); rpc getToFriendsApply(getToFriendsApplyReq) returns(getToFriendsApplyResp);
// //
rpc getFromFriendApplyList(GetFromFriendApplyListReq) returns(GetFromFriendApplyListResp); rpc getFromFriendsApply(getFromFriendsApplyReq) returns(getFromFriendsApplyResp);
// //
rpc getFriendList(GetFriendListReq) returns(GetFriendListResp); rpc getFriends(getFriendsReq) returns(getFriendsResp);
// //
rpc addBlacklist(AddBlacklistReq) returns(AddBlacklistResp); rpc addBlack(addBlackReq) returns(addBlackResp);
// //
rpc removeBlacklist(RemoveBlacklistReq) returns(RemoveBlacklistResp); rpc removeBlack(removeBlackReq) returns(removeBlackReqResp);
// //
rpc isFriend(IsFriendReq) returns(IsFriendResp); rpc isFriend(isFriendReq) returns(isFriendResp);
// //
rpc isInBlackList(IsInBlackListReq) returns(IsInBlackListResp); rpc isBlack(isBlackReq) returns(isBlackResp);
// //
rpc getBlacklist(GetBlacklistReq) returns(GetBlacklistResp); rpc getBlacks(getBlacksReq) returns(getBlacksResp);
// //
rpc deleteFriend(DeleteFriendReq) returns(DeleteFriendResp); rpc deleteFriend(deleteFriendReq) returns(deleteFriendResp);
// //
rpc friendApplyResponse(FriendApplyResponseReq) returns(FriendApplyResponseResp); rpc respondFriendApply(respondFriendApplyReq) returns(respondFriendApplyResp);
// //
rpc setFriendRemark(SetFriendRemarkReq) returns(SetFriendRemarkResp); rpc setFriendRemark(setFriendRemarkReq) returns(setFriendRemarkResp);
// //
rpc importFriend(ImportFriendReq) returns(ImportFriendResp); rpc importFriends(importFriendReq) returns(importFriendResp);
// //
rpc getFriendsInfo(GetFriendsInfoReq) returns (GetFriendsInfoResp); rpc getFriendsInfo(getFriendsInfoReq) returns (getFriendsInfoResp);
} }