bilibili-backup/app/service/main/resource/rpc/server/server.go
2019-04-22 02:59:20 +00:00

132 lines
3.3 KiB
Go

package server
import (
"go-common/app/service/main/resource/conf"
"go-common/app/service/main/resource/model"
"go-common/app/service/main/resource/service"
"go-common/library/ecode"
"go-common/library/net/rpc"
"go-common/library/net/rpc/context"
)
// RPC struct
type RPC struct {
s *service.Service
}
// New init rpc server.
func New(c *conf.Config, s *service.Service) (svr *rpc.Server) {
r := &RPC{s: s}
svr = rpc.NewServer(c.RPCServer)
if err := svr.Register(r); err != nil {
panic(err)
}
return
}
// Ping check connection success.
func (r *RPC) Ping(c context.Context, arg *struct{}, res *struct{}) (err error) {
return
}
// ResourceAll get all resource.
func (r *RPC) ResourceAll(c context.Context, a *struct{}, res *[]*model.Resource) (err error) {
*res = r.s.ResourceAll(c)
return
}
// AssignmentAll get all assignment.
func (r *RPC) AssignmentAll(c context.Context, a *struct{}, res *[]*model.Assignment) (err error) {
*res = r.s.AssignmentAll(c)
return
}
// DefBanner get default banner.
func (r *RPC) DefBanner(c context.Context, a *struct{}, as *model.Assignment) (err error) {
res := r.s.DefBanner(c)
if res == nil {
err = ecode.NothingFound
return
}
*as = *res
return
}
// Resource get resource.
func (r *RPC) Resource(c context.Context, arg *model.ArgRes, res *model.Resource) (err error) {
rs := r.s.Resource(c, arg.ResID)
if rs == nil {
err = ecode.NothingFound
return
}
*res = *rs
return
}
// Resources get resource.
func (r *RPC) Resources(c context.Context, as *model.ArgRess, res *map[int]*model.Resource) (err error) {
*res = r.s.Resources(c, as.ResIDs)
return
}
// Banners get banners.
func (r *RPC) Banners(c context.Context, ab *model.ArgBanner, res *model.Banners) (err error) {
// func Banners already new rs, rs can not be nil.
rs := r.s.Banners(c, ab.Plat, ab.Build, ab.AID, ab.MID, ab.ResIDs, ab.Channel, ab.IP, ab.Buvid, ab.Network, ab.MobiApp, ab.Device, ab.OpenEvent, ab.AdExtra, ab.Version, ab.IsAd)
*res = *rs
return
}
// PasterAPP get paster for APP.
func (r *RPC) PasterAPP(c context.Context, arg *model.ArgPaster, res *model.Paster) (err error) {
var rs *model.Paster
if rs, err = r.s.PasterAPP(c, arg.Platform, arg.AdType, arg.Aid, arg.TypeId, arg.Buvid); err == nil {
*res = *rs
}
return
}
// IndexIcon get index icon.
func (r *RPC) IndexIcon(c context.Context, a *struct{}, res *map[string][]*model.IndexIcon) (err error) {
*res = r.s.IndexIcon(c)
return
}
// PlayerIcon get player icon config.
func (r *RPC) PlayerIcon(c context.Context, arg *struct{}, res *model.PlayerIcon) (err error) {
var rs *model.PlayerIcon
rs, err = r.s.PlayerIcon(c)
if err == nil {
*res = *rs
}
return
}
// Cmtbox get live box.
func (r *RPC) Cmtbox(c context.Context, cb *model.ArgCmtbox, res *model.Cmtbox) (err error) {
rs, err := r.s.Cmtbox(c, cb.ID)
if err == nil {
*res = *rs
}
return
}
// SideBars get sode bar.
func (r *RPC) SideBars(c context.Context, a *struct{}, res *model.SideBars) (err error) {
sbs := r.s.SideBars(c)
*res = *sbs
return
}
// AbTest get abtest.
func (r *RPC) AbTest(c context.Context, ab *model.ArgAbTest, res *map[string]*model.AbTest) (err error) {
*res = r.s.AbTest(c, ab.Groups, ab.IP)
return
}
// PasterCID get all Paster's cid.
func (r *RPC) PasterCID(c context.Context, a *struct{}, res *map[int64]int64) (err error) {
*res, err = r.s.PasterCID(c)
return
}