Create & Init Project...

This commit is contained in:
2019-04-22 18:49:16 +08:00
commit fc4fa37393
25440 changed files with 4054998 additions and 0 deletions

View File

@@ -0,0 +1,48 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_test",
"go_library",
)
go_test(
name = "go_default_test",
srcs = ["server_test.go"],
embed = [":go_default_library"],
tags = ["automanaged"],
deps = [
"//app/service/main/push/api/gorpc:go_default_library",
"//app/service/main/push/model:go_default_library",
"//vendor/github.com/smartystreets/goconvey/convey:go_default_library",
],
)
go_library(
name = "go_default_library",
srcs = ["server.go"],
importpath = "go-common/app/service/main/push/server/gorpc",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/service/main/push/conf:go_default_library",
"//app/service/main/push/model:go_default_library",
"//app/service/main/push/service:go_default_library",
"//library/net/rpc:go_default_library",
"//library/net/rpc/context:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,158 @@
package gorpc
import (
"go-common/app/service/main/push/conf"
"go-common/app/service/main/push/model"
"go-common/app/service/main/push/service"
"go-common/library/net/rpc"
"go-common/library/net/rpc/context"
)
// RPC rpc.
type RPC struct {
s *service.Service
}
// New .
func New(c *conf.Config, s *service.Service) (svc *rpc.Server) {
r := &RPC{s: s}
svc = rpc.NewServer(c.RPCServer)
if err := svc.Register(r); err != nil {
panic(err)
}
return
}
// Ping checks connection success.
func (r *RPC) Ping(c context.Context, arg *struct{}, res *struct{}) (err error) {
return
}
// Auth check connection success.
func (r *RPC) Auth(c context.Context, arg *rpc.Auth, res *struct{}) (err error) {
return
}
// AddReport adds report by mid.
func (r *RPC) AddReport(c context.Context, arg *model.ArgReport, res *struct{}) (err error) {
report := &model.Report{
APPID: arg.APPID,
PlatformID: arg.PlatformID,
Mid: arg.Mid,
Buvid: arg.Buvid,
DeviceToken: arg.DeviceToken,
Build: arg.Build,
TimeZone: arg.TimeZone,
NotifySwitch: arg.NotifySwitch,
DeviceBrand: arg.DeviceBrand,
DeviceModel: arg.DeviceModel,
OSVersion: arg.OSVersion,
Extra: arg.Extra,
}
err = r.s.AddReport(c, report)
return
}
// DelInvalidReports deletes invalid reports.
func (r *RPC) DelInvalidReports(c context.Context, arg *model.ArgDelInvalidReport, res *struct{}) (err error) {
err = r.s.DelInvalidReports(c, arg.Type)
return
}
// DelReport deletes report.
func (r *RPC) DelReport(c context.Context, arg *model.ArgReport, res *struct{}) (err error) {
err = r.s.DelReport(c, arg.APPID, arg.Mid, arg.DeviceToken)
return
}
// AddCallback adds callback data.
func (r *RPC) AddCallback(c context.Context, arg *model.ArgCallback, res *struct{}) (err error) {
cb := &model.Callback{
Task: arg.Task,
APP: arg.APP,
Platform: arg.Platform,
Mid: arg.Mid,
Pid: arg.Pid,
Token: arg.Token,
Buvid: arg.Buvid,
Click: arg.Click,
Extra: arg.Extra,
}
err = r.s.AddCallback(c, cb)
return
}
// AddReportCache adds report cache.
func (r *RPC) AddReportCache(c context.Context, arg *model.ArgReport, res *struct{}) (err error) {
report := &model.Report{
ID: arg.ID,
APPID: arg.APPID,
PlatformID: arg.PlatformID,
Mid: arg.Mid,
Buvid: arg.Buvid,
DeviceToken: arg.DeviceToken,
Build: arg.Build,
TimeZone: arg.TimeZone,
NotifySwitch: arg.NotifySwitch,
DeviceBrand: arg.DeviceBrand,
DeviceModel: arg.DeviceModel,
OSVersion: arg.OSVersion,
Extra: arg.Extra,
}
err = r.s.AddReportCache(c, report)
return
}
// AddUserReportCache adds user report cache.
func (r *RPC) AddUserReportCache(c context.Context, arg *model.ArgUserReports, res *struct{}) (err error) {
err = r.s.AddUserReportCache(c, arg.Mid, arg.Reports)
return
}
// Setting gets user push switch setting.
func (r *RPC) Setting(c context.Context, arg *model.ArgMid, res *map[int]int) (err error) {
*res, err = r.s.Setting(c, arg.Mid)
return
}
// SetSetting sets user push switch setting.
func (r *RPC) SetSetting(c context.Context, arg *model.ArgSetting, res *struct{}) (err error) {
err = r.s.SetSetting(c, arg.Mid, arg.Type, arg.Value)
return
}
// AddMidProgress add mid count number to task progress field
func (r *RPC) AddMidProgress(c context.Context, arg *model.ArgMidProgress, res *struct{}) (err error) {
err = r.s.AddMidProgress(c, arg.Task, arg.MidTotal, arg.MidValid)
return
}
// AddTokenCache add token cache
func (r *RPC) AddTokenCache(ctx context.Context, arg *model.ArgReport, res *struct{}) (err error) {
report := &model.Report{
APPID: arg.APPID,
PlatformID: arg.PlatformID,
Mid: arg.Mid,
Buvid: arg.Buvid,
DeviceToken: arg.DeviceToken,
Build: arg.Build,
TimeZone: arg.TimeZone,
NotifySwitch: arg.NotifySwitch,
DeviceBrand: arg.DeviceBrand,
DeviceModel: arg.DeviceModel,
OSVersion: arg.OSVersion,
Extra: arg.Extra,
}
err = r.s.AddTokenCache(ctx, report)
return
}
// AddTokensCache add token cache
func (r *RPC) AddTokensCache(ctx context.Context, arg *model.ArgReports, res *struct{}) (err error) {
rs := make(map[string]*model.Report, len(arg.Reports))
for _, v := range arg.Reports {
rs[v.DeviceToken] = v
}
err = r.s.AddTokensCache(ctx, rs)
return
}

View File

@@ -0,0 +1,92 @@
package gorpc
import (
"context"
"testing"
pushsrv "go-common/app/service/main/push/api/gorpc"
"go-common/app/service/main/push/model"
. "github.com/smartystreets/goconvey/convey"
)
var (
// _noArg = &struct{}{}
// _noRes = &struct{}{}
ctx = context.TODO()
)
func WithRPC(f func(client *pushsrv.Service)) func() {
return func() {
client := pushsrv.New(nil)
f(client)
}
}
func Test_AddReport(t *testing.T) {
Convey("AddReport", t, WithRPC(func(client *pushsrv.Service) {
arg := &model.ArgReport{
APPID: 1,
PlatformID: 1,
Mid: 1,
Buvid: "b",
DeviceToken: "d",
Build: 8080,
TimeZone: 8,
NotifySwitch: 1,
}
err := client.AddReport(ctx, arg)
So(err, ShouldBeNil)
}))
}
func Test_Setting(t *testing.T) {
Convey("get setting", t, WithRPC(func(client *pushsrv.Service) {
arg := &model.ArgMid{Mid: 88888888}
res, err := client.Setting(ctx, arg)
So(err, ShouldBeNil)
t.Logf("setting(%v)", res)
}))
Convey("set setting", t, WithRPC(func(client *pushsrv.Service) {
arg := &model.ArgSetting{Mid: 999999999, Type: model.UserSettingArchive, Value: model.SwitchOff}
err := client.SetSetting(ctx, arg)
So(err, ShouldBeNil)
argMid := &model.ArgMid{Mid: 999999999}
res, err := client.Setting(ctx, argMid)
So(err, ShouldBeNil)
t.Logf("setting(%v)", res)
}))
}
func TestAddUserReportCache(t *testing.T) {
Convey("AddUserReportCache", t, WithRPC(func(client *pushsrv.Service) {
arg := &model.ArgUserReports{Mid: 123456, Reports: []*model.Report{{
APPID: 1,
PlatformID: 1,
Mid: 123456,
DeviceToken: "dtrpc",
}}}
err := client.AddUserReportCache(context.Background(), arg)
So(err, ShouldBeNil)
}))
}
func TestAddTokensCache(t *testing.T) {
Convey("AddTokensCache", t, WithRPC(func(client *pushsrv.Service) {
arg := &model.ArgReports{Reports: []*model.Report{{
APPID: 1,
PlatformID: 1,
Mid: 123456,
DeviceToken: "dtrpc",
}, {
APPID: 1,
PlatformID: 1,
Mid: 123456,
DeviceToken: "dtrpc2",
}}}
err := client.AddTokensCache(context.Background(), arg)
So(err, ShouldBeNil)
}))
}