Create & Init Project...
This commit is contained in:
42
app/service/main/feed/rpc/client/BUILD
Normal file
42
app/service/main/feed/rpc/client/BUILD
Normal file
@ -0,0 +1,42 @@
|
||||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
load(
|
||||
"@io_bazel_rules_go//go:def.bzl",
|
||||
"go_test",
|
||||
"go_library",
|
||||
)
|
||||
|
||||
go_test(
|
||||
name = "go_default_test",
|
||||
srcs = ["feed_test.go"],
|
||||
embed = [":go_default_library"],
|
||||
rundir = ".",
|
||||
tags = ["automanaged"],
|
||||
deps = ["//app/service/main/feed/model:go_default_library"],
|
||||
)
|
||||
|
||||
go_library(
|
||||
name = "go_default_library",
|
||||
srcs = ["feed.go"],
|
||||
importpath = "go-common/app/service/main/feed/rpc/client",
|
||||
tags = ["automanaged"],
|
||||
deps = [
|
||||
"//app/interface/openplatform/article/model:go_default_library",
|
||||
"//app/service/main/feed/model:go_default_library",
|
||||
"//library/net/rpc: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"],
|
||||
)
|
123
app/service/main/feed/rpc/client/feed.go
Normal file
123
app/service/main/feed/rpc/client/feed.go
Normal file
@ -0,0 +1,123 @@
|
||||
package client
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
artmdl "go-common/app/interface/openplatform/article/model"
|
||||
feedmdl "go-common/app/service/main/feed/model"
|
||||
"go-common/library/net/rpc"
|
||||
)
|
||||
|
||||
const (
|
||||
_appFeed = "RPC.AppFeed"
|
||||
_webFeed = "RPC.WebFeed"
|
||||
_archiveFeed = "RPC.ArchiveFeed"
|
||||
_bangumiFeed = "RPC.BangumiFeed"
|
||||
_addArc = "RPC.AddArc"
|
||||
_delArc = "RPC.DelArc"
|
||||
_purgeFeedCache = "RPC.PurgeFeedCache"
|
||||
_fold = "RPC.Fold"
|
||||
_appUnreadCount = "RPC.AppUnreadCount"
|
||||
_webUnreadCount = "RPC.WebUnreadCount"
|
||||
_changeArcUpper = "RPC.ChangeArcUpper"
|
||||
_articleFeed = "RPC.ArticleFeed"
|
||||
_articleUnreadCount = "RPC.ArticleUnreadCount"
|
||||
)
|
||||
|
||||
const (
|
||||
_appid = "community.service.feed"
|
||||
)
|
||||
|
||||
var (
|
||||
_noArg = &struct{}{}
|
||||
)
|
||||
|
||||
// Service struct info.
|
||||
type Service struct {
|
||||
client *rpc.Client2
|
||||
}
|
||||
|
||||
// New new service instance and return.
|
||||
func New(c *rpc.ClientConfig) (s *Service) {
|
||||
s = &Service{}
|
||||
s.client = rpc.NewDiscoveryCli(_appid, c)
|
||||
return
|
||||
}
|
||||
|
||||
// AppFeed receive ArgMid contains mid and real ip, then init app feed.
|
||||
func (s *Service) AppFeed(c context.Context, arg *feedmdl.ArgFeed) (res []*feedmdl.Feed, err error) {
|
||||
err = s.client.Call(c, _appFeed, arg, &res)
|
||||
return
|
||||
}
|
||||
|
||||
// WebFeed receive ArgMid contains mid and real ip, then init web feed without fold.
|
||||
func (s *Service) WebFeed(c context.Context, arg *feedmdl.ArgFeed) (res []*feedmdl.Feed, err error) {
|
||||
err = s.client.Call(c, _webFeed, arg, &res)
|
||||
return
|
||||
}
|
||||
|
||||
// ArchiveFeed receive ArgMid contains mid and real ip
|
||||
func (s *Service) ArchiveFeed(c context.Context, arg *feedmdl.ArgFeed) (res []*feedmdl.Feed, err error) {
|
||||
err = s.client.Call(c, _archiveFeed, arg, &res)
|
||||
return
|
||||
}
|
||||
|
||||
// BangumiFeed receive ArgMid contains mid and real ip
|
||||
func (s *Service) BangumiFeed(c context.Context, arg *feedmdl.ArgFeed) (res []*feedmdl.Feed, err error) {
|
||||
err = s.client.Call(c, _bangumiFeed, arg, &res)
|
||||
return
|
||||
}
|
||||
|
||||
// ArticleFeed receive ArgMid and return article feed.
|
||||
func (s *Service) ArticleFeed(c context.Context, arg *feedmdl.ArgFeed) (res []*artmdl.Meta, err error) {
|
||||
err = s.client.Call(c, _articleFeed, arg, &res)
|
||||
return
|
||||
}
|
||||
|
||||
// ArticleUnreadCount return unread count of article feed.
|
||||
func (s *Service) ArticleUnreadCount(c context.Context, arg *feedmdl.ArgMid) (res int, err error) {
|
||||
err = s.client.Call(c, _articleUnreadCount, arg, &res)
|
||||
return
|
||||
}
|
||||
|
||||
// AddArc add archive when archive passed. purge cache.
|
||||
func (s *Service) AddArc(c context.Context, arg *feedmdl.ArgArc) (err error) {
|
||||
err = s.client.Call(c, _addArc, arg, &struct{}{})
|
||||
return
|
||||
}
|
||||
|
||||
// DelArc delete archive when archive not passed. purge cache.
|
||||
func (s *Service) DelArc(c context.Context, arg *feedmdl.ArgAidMid) (err error) {
|
||||
err = s.client.Call(c, _delArc, arg, &struct{}{})
|
||||
return
|
||||
}
|
||||
|
||||
// PurgeFeedCache purge cache when attention/unattention upper
|
||||
func (s *Service) PurgeFeedCache(c context.Context, arg *feedmdl.ArgMid) (err error) {
|
||||
err = s.client.Call(c, _purgeFeedCache, arg, &struct{}{})
|
||||
return
|
||||
}
|
||||
|
||||
// Fold receive ArgFold contains mid, then return upper's fold archives.
|
||||
func (s *Service) Fold(c context.Context, arg *feedmdl.ArgFold) (res []*feedmdl.Feed, err error) {
|
||||
err = s.client.Call(c, _fold, arg, &res)
|
||||
return
|
||||
}
|
||||
|
||||
// AppUnreadCount receive ArgUnreadCount contains mid, and withoutBangumi then return unread count.
|
||||
func (s *Service) AppUnreadCount(c context.Context, arg *feedmdl.ArgUnreadCount) (res int, err error) {
|
||||
err = s.client.Call(c, _appUnreadCount, arg, &res)
|
||||
return
|
||||
}
|
||||
|
||||
// WebUnreadCount receive ArgUnreadCount contains mid, then return unread count.
|
||||
func (s *Service) WebUnreadCount(c context.Context, arg *feedmdl.ArgMid) (res int, err error) {
|
||||
err = s.client.Call(c, _webUnreadCount, arg, &res)
|
||||
return
|
||||
}
|
||||
|
||||
// ChangeArcUpper refresh feed cache when change archive's author
|
||||
func (s *Service) ChangeArcUpper(c context.Context, arg *feedmdl.ArgChangeUpper) (err error) {
|
||||
err = s.client.Call(c, _changeArcUpper, arg, &struct{}{})
|
||||
return
|
||||
}
|
102
app/service/main/feed/rpc/client/feed_test.go
Normal file
102
app/service/main/feed/rpc/client/feed_test.go
Normal file
@ -0,0 +1,102 @@
|
||||
package client
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
model "go-common/app/service/main/feed/model"
|
||||
)
|
||||
|
||||
func TestFeed(t *testing.T) {
|
||||
s := New(nil)
|
||||
time.Sleep(1 * time.Second)
|
||||
testAppFeed(t, s)
|
||||
testWebFeed(t, s)
|
||||
testAddArc(t, s)
|
||||
testDelArc(t, s)
|
||||
testPurgeFeedCache(t, s)
|
||||
testFold(t, s)
|
||||
}
|
||||
|
||||
func testAppFeed(t *testing.T, s *Service) {
|
||||
if res, err := s.AppFeed(context.TODO(), &model.ArgFeed{Mid: 27515256, Pn: 1, Ps: 20}); err != nil {
|
||||
t.Errorf("Service: AppFeed err: %v", err)
|
||||
} else {
|
||||
t.Logf("Service: AppFeed: %v", res)
|
||||
}
|
||||
}
|
||||
|
||||
func testWebFeed(t *testing.T, s *Service) {
|
||||
if res, err := s.WebFeed(context.TODO(), &model.ArgFeed{Mid: 27515256, Pn: 1, Ps: 20}); err != nil {
|
||||
t.Errorf("Service: WebFeed err: %v", err)
|
||||
} else {
|
||||
t.Logf("Service: WebFeed: %v", res)
|
||||
}
|
||||
}
|
||||
|
||||
func testArchiveFeed(t *testing.T, s *Service) {
|
||||
if res, err := s.ArchiveFeed(context.TODO(), &model.ArgFeed{Mid: 27515256, Pn: 1, Ps: 20}); err != nil {
|
||||
t.Errorf("Service: ArchiveFeed err: %v", err)
|
||||
} else {
|
||||
t.Logf("Service: ArchiveFeed: %v", res)
|
||||
}
|
||||
}
|
||||
|
||||
func testBangumiFeed(t *testing.T, s *Service) {
|
||||
if res, err := s.BangumiFeed(context.TODO(), &model.ArgFeed{Mid: 27515256, Pn: 1, Ps: 20}); err != nil {
|
||||
t.Errorf("Service: BangumiFeed err: %v", err)
|
||||
} else {
|
||||
t.Logf("Service: BangumiFeed: %v", res)
|
||||
}
|
||||
}
|
||||
|
||||
func testAddArc(t *testing.T, s *Service) {
|
||||
if err := s.AddArc(context.TODO(), &model.ArgArc{Aid: 1}); err != nil {
|
||||
t.Errorf("Service: AddArc err: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func testDelArc(t *testing.T, s *Service) {
|
||||
if err := s.DelArc(context.TODO(), &model.ArgAidMid{Aid: 1}); err != nil {
|
||||
t.Errorf("Service: DelArc err: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func testPurgeFeedCache(t *testing.T, s *Service) {
|
||||
if err := s.PurgeFeedCache(context.TODO(), &model.ArgMid{Mid: 27515256}); err != nil {
|
||||
t.Errorf("Service: PurgeFeedCache err: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func testFold(t *testing.T, s *Service) {
|
||||
if res, err := s.Fold(context.TODO(), &model.ArgFold{Aid: 1, Mid: 27515256}); err != nil {
|
||||
t.Errorf("Service: Fold err: %v", err)
|
||||
} else {
|
||||
t.Logf("Service: Fold: %v", res)
|
||||
}
|
||||
}
|
||||
|
||||
func testAppUnreadCount(t *testing.T, s *Service) {
|
||||
if res, err := s.AppUnreadCount(context.TODO(), &model.ArgUnreadCount{Mid: 27515256, WithoutBangumi: false}); err != nil {
|
||||
t.Errorf("Service: UnreadCount err: %v", err)
|
||||
} else {
|
||||
t.Logf("Service: UnreadCount: %v", res)
|
||||
}
|
||||
}
|
||||
|
||||
func testWebUnreadCount(t *testing.T, s *Service) {
|
||||
if res, err := s.WebUnreadCount(context.TODO(), &model.ArgMid{Mid: 27515256}); err != nil {
|
||||
t.Errorf("Service: UnreadCount err: %v", err)
|
||||
} else {
|
||||
t.Logf("Service: UnreadCount: %v", res)
|
||||
}
|
||||
}
|
||||
|
||||
func testChangeArcUpper(t *testing.T, s *Service) {
|
||||
if err := s.ChangeArcUpper(context.TODO(), &model.ArgChangeUpper{Aid: 1, OldMid: 1, NewMid: 2, RealIP: "127.0.0.1"}); err != nil {
|
||||
t.Errorf("Service: ChangeArcUpper err: %v", err)
|
||||
} else {
|
||||
t.Logf("Service: ChangeArcUpper ok")
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user