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.
181 lines
5.1 KiB
181 lines
5.1 KiB
package grpc |
|
|
|
import ( |
|
"context" |
|
|
|
pb "go-common/app/service/main/account/api" |
|
"go-common/app/service/main/account/conf" |
|
"go-common/app/service/main/account/service" |
|
"go-common/library/net/rpc/warden" |
|
) |
|
|
|
// New warden rpc server |
|
func New(c *conf.Config, s *service.Service) (svr *warden.Server) { |
|
svr = warden.NewServer(c.WardenServer) |
|
pb.RegisterAccountServer(svr.Server(), &server{as: s}) |
|
return svr |
|
} |
|
|
|
// Start create and start warden rpc server |
|
func Start(c *conf.Config, s *service.Service) (svr *warden.Server, err error) { |
|
svr = warden.NewServer(c.WardenServer) |
|
pb.RegisterAccountServer(svr.Server(), &server{as: s}) |
|
if svr, err = svr.Start(); err != nil { |
|
return |
|
} |
|
return |
|
} |
|
|
|
type server struct { |
|
as *service.Service |
|
} |
|
|
|
var _ pb.AccountServer = &server{} |
|
|
|
func (s *server) Info3(ctx context.Context, req *pb.MidReq) (*pb.InfoReply, error) { |
|
info, err := s.as.Info(ctx, req.Mid) |
|
if err != nil { |
|
return nil, err |
|
} |
|
return &pb.InfoReply{Info: info}, nil |
|
} |
|
|
|
func (s *server) Infos3(ctx context.Context, req *pb.MidsReq) (*pb.InfosReply, error) { |
|
infos, err := s.as.Infos(ctx, req.Mids) |
|
if err != nil { |
|
return nil, err |
|
} |
|
return &pb.InfosReply{Infos: infos}, nil |
|
} |
|
|
|
func (s *server) InfosByName3(ctx context.Context, req *pb.NamesReq) (*pb.InfosReply, error) { |
|
infos, err := s.as.InfosByName(ctx, req.Names) |
|
if err != nil { |
|
return nil, err |
|
} |
|
return &pb.InfosReply{Infos: infos}, nil |
|
} |
|
|
|
func (s *server) Card3(ctx context.Context, req *pb.MidReq) (*pb.CardReply, error) { |
|
card, err := s.as.Card(ctx, req.Mid) |
|
if err != nil { |
|
return nil, err |
|
} |
|
return &pb.CardReply{Card: card}, nil |
|
} |
|
|
|
func (s *server) Cards3(ctx context.Context, req *pb.MidsReq) (*pb.CardsReply, error) { |
|
cards, err := s.as.Cards(ctx, req.Mids) |
|
if err != nil { |
|
return nil, err |
|
} |
|
return &pb.CardsReply{Cards: cards}, nil |
|
} |
|
|
|
func (s *server) Profile3(ctx context.Context, req *pb.MidReq) (*pb.ProfileReply, error) { |
|
profile, err := s.as.Profile(ctx, req.Mid) |
|
if err != nil { |
|
return nil, err |
|
} |
|
return &pb.ProfileReply{Profile: profile}, nil |
|
} |
|
|
|
func (s *server) ProfileWithStat3(ctx context.Context, req *pb.MidReq) (*pb.ProfileStatReply, error) { |
|
profileStat, err := s.as.ProfileWithStat(ctx, req.Mid) |
|
if err != nil { |
|
return nil, err |
|
} |
|
level := pb.LevelInfo{} |
|
level.DeepCopyFromLevelInfo(&profileStat.LevelExp) |
|
return &pb.ProfileStatReply{ |
|
Profile: profileStat.Profile, |
|
LevelInfo: level, |
|
Coins: profileStat.Coins, |
|
Follower: profileStat.Follower, |
|
Following: profileStat.Following, |
|
}, nil |
|
} |
|
|
|
func (s *server) AddExp3(ctx context.Context, req *pb.ExpReq) (*pb.ExpReply, error) { |
|
return &pb.ExpReply{}, s.as.AddExp(ctx, req.Mid, req.Exp, req.Operater, req.Operate, req.Reason) |
|
} |
|
|
|
func (s *server) AddMoral3(ctx context.Context, req *pb.MoralReq) (*pb.MoralReply, error) { |
|
return &pb.MoralReply{}, s.as.AddMoral(ctx, req.Mid, req.Moral, req.Oper, req.Reason, req.Remark) |
|
} |
|
|
|
func (s *server) Relation3(ctx context.Context, req *pb.RelationReq) (*pb.RelationReply, error) { |
|
relation, err := s.as.Relation(ctx, req.Mid, req.Owner) |
|
if err != nil { |
|
return nil, err |
|
} |
|
return &pb.RelationReply{Following: relation.Following}, nil |
|
} |
|
|
|
func (s *server) Attentions3(ctx context.Context, req *pb.MidReq) (*pb.AttentionsReply, error) { |
|
attentions, err := s.as.Attentions(ctx, req.Mid) |
|
if err != nil { |
|
return nil, err |
|
} |
|
return &pb.AttentionsReply{Attentions: attentions}, nil |
|
} |
|
|
|
func (s *server) Blacks3(ctx context.Context, req *pb.MidReq) (*pb.BlacksReply, error) { |
|
blackList, err := s.as.Blacks(ctx, req.Mid) |
|
if err != nil { |
|
return nil, err |
|
} |
|
blackListBool := make(map[int64]bool, len(blackList)) |
|
for k := range blackList { |
|
blackListBool[k] = true |
|
} |
|
return &pb.BlacksReply{BlackList: blackListBool}, nil |
|
} |
|
|
|
func (s *server) Relations3(ctx context.Context, req *pb.RelationsReq) (*pb.RelationsReply, error) { |
|
relations, err := s.as.Relations(ctx, req.Mid, req.Owners) |
|
if err != nil { |
|
return nil, err |
|
} |
|
newRelations := make(map[int64]*pb.RelationReply, len(relations)) |
|
for k, v := range relations { |
|
newRelations[k] = &pb.RelationReply{Following: v.Following} |
|
} |
|
return &pb.RelationsReply{Relations: newRelations}, nil |
|
} |
|
|
|
func (s *server) RichRelations3(ctx context.Context, req *pb.RichRelationReq) (*pb.RichRelationsReply, error) { |
|
richRelations, err := s.as.RichRelations2(ctx, req.Owner, req.Mids) |
|
if err != nil { |
|
return nil, err |
|
} |
|
newRichRelations := make(map[int64]int32, len(richRelations)) |
|
for k, v := range richRelations { |
|
newRichRelations[k] = int32(v) |
|
} |
|
return &pb.RichRelationsReply{RichRelations: newRichRelations}, nil |
|
} |
|
|
|
func (s *server) Vip3(ctx context.Context, req *pb.MidReq) (*pb.VipReply, error) { |
|
vip, err := s.as.Vip(ctx, req.Mid) |
|
if err != nil { |
|
return nil, err |
|
} |
|
reply := new(pb.VipReply) |
|
reply.DeepCopyFromVipInfo(vip) |
|
return reply, nil |
|
} |
|
|
|
func (s *server) Vips3(ctx context.Context, req *pb.MidsReq) (*pb.VipsReply, error) { |
|
vips, err := s.as.Vips(ctx, req.Mids) |
|
if err != nil { |
|
return nil, err |
|
} |
|
pvips := make(map[int64]*pb.VipReply, len(vips)) |
|
for mid, vip := range vips { |
|
pvip := new(pb.VipReply) |
|
pvip.DeepCopyFromVipInfo(vip) |
|
pvips[mid] = pvip |
|
} |
|
return &pb.VipsReply{Vips: pvips}, nil |
|
}
|
|
|