You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
190 lines
5.0 KiB
190 lines
5.0 KiB
package grpc |
|
|
|
import ( |
|
"context" |
|
"go-common/app/service/main/member/api" |
|
"go-common/app/service/main/member/service" |
|
"go-common/app/service/main/member/service/block" |
|
"go-common/library/net/rpc/warden" |
|
) |
|
|
|
// New Member warden rpc server |
|
func New(cfg *warden.ServerConfig, s *service.Service) *warden.Server { |
|
w := warden.NewServer(cfg) |
|
api.RegisterMemberServer(w.Server(), &MemberServer{svr: s, blockSvr: s.BlockImpl()}) |
|
|
|
ws, err := w.Start() |
|
if err != nil { |
|
panic(err) |
|
} |
|
return ws |
|
} |
|
|
|
// MemberServer define member Service |
|
type MemberServer struct { |
|
svr *service.Service |
|
blockSvr *block.Service |
|
} |
|
|
|
var _ api.MemberServer = &MemberServer{} |
|
|
|
// Base get member base info |
|
func (s *MemberServer) Base(ctx context.Context, req *api.MemberMidReq) (*api.BaseInfoReply, error) { |
|
res, err := s.svr.BaseInfo(ctx, req.Mid) |
|
if err != nil { |
|
return nil, err |
|
} |
|
|
|
return api.FromBaseInfo(res), nil |
|
} |
|
|
|
// Bases batch get members base info |
|
func (s *MemberServer) Bases(ctx context.Context, req *api.MemberMidsReq) (*api.BaseInfosReply, error) { |
|
res, err := s.svr.BatchBaseInfo(ctx, req.Mids) |
|
if err != nil { |
|
return nil, err |
|
} |
|
|
|
baseInfos := make(map[int64]*api.BaseInfoReply, len(res)) |
|
baseInfosReply := &api.BaseInfosReply{ |
|
BaseInfos: baseInfos, |
|
} |
|
|
|
for k, v := range res { |
|
baseInfos[k] = api.FromBaseInfo(v) |
|
} |
|
|
|
return baseInfosReply, nil |
|
} |
|
|
|
// Member get member full information |
|
func (s *MemberServer) Member(ctx context.Context, req *api.MemberMidReq) (*api.MemberInfoReply, error) { |
|
res, err := s.svr.Member(ctx, req.Mid) |
|
if err != nil { |
|
return nil, err |
|
} |
|
|
|
memberInfoReply := api.FromMember(res) |
|
return memberInfoReply, nil |
|
} |
|
|
|
// Members Batch get members info |
|
func (s *MemberServer) Members(ctx context.Context, req *api.MemberMidsReq) (*api.MemberInfosReply, error) { |
|
res, err := s.svr.Members(ctx, req.Mids) |
|
if err != nil { |
|
return nil, err |
|
} |
|
|
|
memberInfos := make(map[int64]*api.MemberInfoReply, len(res)) |
|
for k, v := range res { |
|
memberInfoReply := api.FromMember(v) |
|
memberInfos[k] = memberInfoReply |
|
} |
|
memberInfosReply := &api.MemberInfosReply{ |
|
MemberInfos: memberInfos, |
|
} |
|
|
|
return memberInfosReply, nil |
|
} |
|
|
|
// NickUpdated Whether the member's nickname has been updated |
|
func (s *MemberServer) NickUpdated(ctx context.Context, req *api.MemberMidReq) (*api.NickUpdatedReply, error) { |
|
res, err := s.svr.NickUpdated(ctx, req.Mid) |
|
if err != nil { |
|
return nil, err |
|
} |
|
nickUpdatedReply := &api.NickUpdatedReply{ |
|
NickUpdated: res, |
|
} |
|
return nickUpdatedReply, nil |
|
} |
|
|
|
// SetNickUpdated Mark nickname as updated |
|
func (s *MemberServer) SetNickUpdated(ctx context.Context, req *api.MemberMidReq) (*api.EmptyStruct, error) { |
|
err := s.svr.SetNickUpdated(ctx, req.Mid) |
|
if err != nil { |
|
return nil, err |
|
} |
|
emptyStruct := &api.EmptyStruct{} |
|
return emptyStruct, nil |
|
} |
|
|
|
// SetOfficialDoc Set offical document |
|
func (s *MemberServer) SetOfficialDoc(ctx context.Context, req *api.OfficialDocReq) (*api.EmptyStruct, error) { |
|
err := s.svr.SetOfficialDoc(ctx, api.ToArgOfficialDoc(req)) |
|
if err != nil { |
|
return nil, err |
|
} |
|
emptyStruct := &api.EmptyStruct{} |
|
return emptyStruct, nil |
|
} |
|
|
|
// SetSex Set member's sex |
|
func (s *MemberServer) SetSex(ctx context.Context, req *api.UpdateSexReq) (*api.EmptyStruct, error) { |
|
err := s.svr.SetSex(ctx, req.Mid, req.Sex) |
|
if err != nil { |
|
return nil, err |
|
} |
|
emptyStruct := &api.EmptyStruct{} |
|
return emptyStruct, nil |
|
} |
|
|
|
// SetName Set member's name |
|
func (s *MemberServer) SetName(ctx context.Context, req *api.UpdateUnameReq) (*api.EmptyStruct, error) { |
|
err := s.svr.SetName(ctx, req.Mid, req.Name) |
|
if err != nil { |
|
return nil, err |
|
} |
|
emptyStruct := &api.EmptyStruct{} |
|
return emptyStruct, nil |
|
} |
|
|
|
// SetFace Set member's face |
|
func (s *MemberServer) SetFace(ctx context.Context, req *api.UpdateFaceReq) (*api.EmptyStruct, error) { |
|
err := s.svr.SetFace(ctx, req.Mid, req.Face) |
|
if err != nil { |
|
return nil, err |
|
} |
|
emptyStruct := &api.EmptyStruct{} |
|
return emptyStruct, nil |
|
} |
|
|
|
// SetRank Set member's rank |
|
func (s *MemberServer) SetRank(ctx context.Context, req *api.UpdateRankReq) (*api.EmptyStruct, error) { |
|
err := s.svr.SetRank(ctx, req.Mid, req.Rank) |
|
if err != nil { |
|
return nil, err |
|
} |
|
emptyStruct := &api.EmptyStruct{} |
|
return emptyStruct, nil |
|
} |
|
|
|
// SetBirthday Set member's birthday |
|
func (s *MemberServer) SetBirthday(ctx context.Context, req *api.UpdateBirthdayReq) (*api.EmptyStruct, error) { |
|
err := s.svr.SetBirthday(ctx, req.Mid, req.Birthday) |
|
if err != nil { |
|
return nil, err |
|
} |
|
emptyStruct := &api.EmptyStruct{} |
|
return emptyStruct, nil |
|
} |
|
|
|
// SetSign Set member's sign |
|
func (s *MemberServer) SetSign(ctx context.Context, req *api.UpdateSignReq) (*api.EmptyStruct, error) { |
|
err := s.svr.SetSign(ctx, req.Mid, req.Sign) |
|
if err != nil { |
|
return nil, err |
|
} |
|
emptyStruct := &api.EmptyStruct{} |
|
return emptyStruct, nil |
|
} |
|
|
|
// OfficialDoc Get member's offical doc |
|
func (s *MemberServer) OfficialDoc(ctx context.Context, req *api.MidReq) (*api.OfficialDocInfoReply, error) { |
|
res, err := s.svr.OfficialDoc(ctx, req.Mid) |
|
if err != nil { |
|
return nil, err |
|
} |
|
officialDocInfoReply := api.FromOfficialDoc(res) |
|
return officialDocInfoReply, nil |
|
}
|
|
|