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,40 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = [
"feed.go",
"http.go",
],
importpath = "go-common/app/interface/main/web-feed/http",
tags = ["automanaged"],
deps = [
"//app/interface/main/web-feed/conf:go_default_library",
"//app/interface/main/web-feed/model:go_default_library",
"//app/interface/main/web-feed/service:go_default_library",
"//app/interface/openplatform/article/model:go_default_library",
"//library/log:go_default_library",
"//library/net/http/blademaster:go_default_library",
"//library/net/http/blademaster/middleware/auth:go_default_library",
"//library/net/http/blademaster/middleware/limit/aqm: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,106 @@
package http
import (
"strconv"
"time"
"go-common/app/interface/main/web-feed/conf"
"go-common/app/interface/main/web-feed/model"
artmdl "go-common/app/interface/openplatform/article/model"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
func feed(c *bm.Context) {
var (
params = c.Request.Form
pn, ps int
mid int64
feeds []*model.Feed
err error
)
pnStr := params.Get("pn")
if pn, err = strconv.Atoi(pnStr); err != nil || pn < 1 {
pn = 1
}
psStr := params.Get("ps")
if ps, err = strconv.Atoi(psStr); err != nil || ps < 1 {
ps = conf.Conf.Feed.DefaultSize
} else if ps > conf.Conf.Feed.MaxSize {
ps = conf.Conf.Feed.MaxSize
}
if midInter, ok := c.Get("mid"); ok {
mid = midInter.(int64)
}
if feeds, err = feedSrv.Feed(c, mid, pn, ps); err != nil {
log.Error("feedSrv.Feed(%d,%d,%d) error(%v)", mid, pn, ps, err)
c.JSON(nil, err)
return
}
c.JSON(feeds, err)
}
func feedUnread(c *bm.Context) {
var (
mid int64
)
if midInter, ok := c.Get("mid"); ok {
mid = midInter.(int64)
}
count, err := feedSrv.UnreadCount(c, mid)
if err != nil {
log.Error("feedSrv.UnreadCount(%d,%v) error(%v)", mid, time.Now(), err)
c.JSON(nil, err)
return
}
c.JSON(struct {
Count int `json:"count"`
}{Count: count}, nil)
}
func articleFeedUnread(c *bm.Context) {
var (
mid int64
)
if midInter, ok := c.Get("mid"); ok {
mid = midInter.(int64)
}
count, err := feedSrv.ArticleUnreadCount(c, mid)
if err != nil {
log.Error("feedSrv.ArticleUnreadCount(%d,%v) error(%v)", mid, time.Now(), err)
c.JSON(nil, err)
return
}
c.JSON(struct {
Count int `json:"count"`
}{Count: count}, nil)
}
func articleFeed(c *bm.Context) {
var (
params = c.Request.Form
pn, ps int
feeds []*artmdl.Meta
mid int64
err error
)
pnStr := params.Get("pn")
if pn, err = strconv.Atoi(pnStr); err != nil || pn < 1 {
pn = 1
}
psStr := params.Get("ps")
if ps, err = strconv.Atoi(psStr); err != nil || ps < 1 {
ps = conf.Conf.Feed.DefaultSize
} else if ps > conf.Conf.Feed.MaxSize {
ps = conf.Conf.Feed.MaxSize
}
if midInter, ok := c.Get("mid"); ok {
mid = midInter.(int64)
}
if feeds, err = feedSrv.ArticleFeed(c, mid, pn, ps); err != nil {
log.Error("feedSrv.ArticleFeed(%d,%d,%d) error(%v)", mid, pn, ps, err)
c.JSON(nil, err)
return
}
c.JSON(feeds, nil)
}

View File

@ -0,0 +1,51 @@
package http
import (
"net/http"
"go-common/app/interface/main/web-feed/conf"
"go-common/app/interface/main/web-feed/service"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/middleware/auth"
"go-common/library/net/http/blademaster/middleware/limit/aqm"
)
var (
feedSrv *service.Service
authSvr *auth.Auth
)
// Init init
func Init(c *conf.Config, srv *service.Service) {
authSvr = auth.New(c.Auth)
feedSrv = srv
engine := bm.DefaultServer(c.BM)
outerRouter(engine)
if err := engine.Start(); err != nil {
log.Error("engine.Start error(%v)", err)
panic(err)
}
}
func outerRouter(e *bm.Engine) {
e.Ping(ping)
group := e.Group("/x/web-feed", authSvr.User)
{
group.GET("/feed", aqm.New(nil).Limit(), feed)
group.GET("/feed/unread", aqm.New(nil).Limit(), feedUnread)
art := group.Group("/article")
{
art.GET("/feed", aqm.New(nil).Limit(), articleFeed)
art.GET("/unread", aqm.New(nil).Limit(), articleFeedUnread)
}
}
}
// Ping check server ok.
func ping(c *bm.Context) {
if err := feedSrv.Ping(c); err != nil {
log.Error("web-feed ping error(%v)", err)
c.AbortWithStatus(http.StatusServiceUnavailable)
}
}