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.
219 lines
6.8 KiB
219 lines
6.8 KiB
package http |
|
|
|
import ( |
|
"net/http" |
|
|
|
"go-common/app/interface/main/activity/conf" |
|
"go-common/app/interface/main/activity/service/bnj" |
|
"go-common/app/interface/main/activity/service/bws" |
|
"go-common/app/interface/main/activity/service/kfc" |
|
"go-common/app/interface/main/activity/service/like" |
|
"go-common/app/interface/main/activity/service/sports" |
|
"go-common/app/interface/main/activity/service/timemachine" |
|
"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/verify" |
|
) |
|
|
|
var ( |
|
likeSvc *like.Service |
|
sportsSvc *sports.Service |
|
matchSvc *like.Service |
|
bwsSvc *bws.Service |
|
tmSvc *timemachine.Service |
|
bnjSvc *bnj.Service |
|
kfcSvc *kfc.Service |
|
authSvc *auth.Auth |
|
vfySvc *verify.Verify |
|
) |
|
|
|
// Init int http service |
|
func Init(c *conf.Config) { |
|
initService(c) |
|
engine := bm.DefaultServer(c.HTTPServer) |
|
outerRouter(engine) |
|
internalRouter(engine) |
|
// init Outer serve |
|
if err := engine.Start(); err != nil { |
|
log.Error("engine.Start error(%v)", err) |
|
panic(err) |
|
} |
|
} |
|
|
|
// initService init service |
|
func initService(c *conf.Config) { |
|
authSvc = auth.New(c.Auth) |
|
vfySvc = verify.New(c.Verify) |
|
likeSvc = like.New(c) |
|
sportsSvc = sports.New(c) |
|
matchSvc = like.New(c) |
|
bwsSvc = bws.New(c) |
|
tmSvc = timemachine.New(c) |
|
bnjSvc = bnj.New(c) |
|
kfcSvc = kfc.New(c) |
|
} |
|
|
|
//CloseService close all service |
|
func CloseService() { |
|
likeSvc.Close() |
|
bnjSvc.Close() |
|
kfcSvc.Close() |
|
} |
|
|
|
// outerRouter init outer router api path. |
|
func outerRouter(e *bm.Engine) { |
|
e.Ping(ping) |
|
e.Register(register) |
|
group := e.Group("/x/activity", bm.CORS()) |
|
{ |
|
group.GET("/subject", subject) |
|
group.POST("/vote", authSvc.User, vote) |
|
group.GET("/ltime", ltime) |
|
group.GET("/object/group", groupData) |
|
group.GET("/tag/object", tagList) |
|
group.GET("/tag/object/stats", tagStats) |
|
group.GET("/region/object", regionList) |
|
group.GET("/subject/total/stat", subjectStat) |
|
group.GET("/view/rank", viewRank) |
|
group.POST("/likeact", authSvc.User, likeAct) |
|
group.GET("/likeact/list", authSvc.Guest, likeActList) |
|
group.POST("/missiongroup/like", authSvc.User, missionLike) |
|
group.POST("/missiongroup/likeact", authSvc.User, missionLikeAct) |
|
group.GET("/missiongroup/info", authSvc.User, missionInfo) |
|
group.GET("/missiongroup/tops", missionTops) |
|
group.GET("/missiongroup/user", missionUser) |
|
group.GET("/missiongroup/rank", authSvc.User, missionRank) |
|
group.GET("/missiongroup/friends", authSvc.User, missionFriends) |
|
group.GET("/missiongroup/award", authSvc.User, missionAward) |
|
group.POST("/missiongroup/achievement", authSvc.User, missionAchieve) |
|
group.POST("/up/act", authSvc.User, storyKingAct) |
|
group.GET("/up/left", authSvc.User, storyKingLeft) |
|
group.GET("/up/list", authSvc.Guest, upList) |
|
spGroup := group.Group("/sports") |
|
{ |
|
spGroup.GET("/qq", qq) |
|
spGroup.GET("/news", news) |
|
} |
|
matchGroup := group.Group("/match") |
|
{ |
|
matchGroup.GET("", matchs) |
|
matchGroup.GET("/unstart", authSvc.Guest, unStart) |
|
matchGroup.POST("/cache/clear", clearCache) |
|
guGroup := matchGroup.Group("/guess") |
|
{ |
|
guGroup.GET("", authSvc.User, guess) |
|
guGroup.GET("/list", authSvc.User, listGuess) |
|
guGroup.POST("/add", authSvc.User, addGuess) |
|
} |
|
foGroup := matchGroup.Group("/follow") |
|
{ |
|
foGroup.GET("", authSvc.User, follow) |
|
foGroup.POST("/add", authSvc.User, addFollow) |
|
} |
|
} |
|
tmGroup := group.Group("/timemachine") |
|
{ |
|
tmGroup.GET("/2018", authSvc.User, timemachine2018) |
|
tmGroup.GET("/2018/raw", authSvc.User, timemachine2018Raw) |
|
tmGroup.GET("/2018/cache", authSvc.User, timemachine2018Cache) |
|
} |
|
bwsGroup := group.Group("/bws") |
|
{ |
|
bwsGroup.GET("/user", authSvc.Guest, user) |
|
bwsGroup.GET("/points", points) |
|
bwsGroup.GET("/point", point) |
|
bwsGroup.GET("/achievements", achievements) |
|
bwsGroup.GET("/achievement", achievement) |
|
bwsGroup.POST("/point/unlock", authSvc.User, unlock) |
|
bwsGroup.POST("/binding", authSvc.User, binding) |
|
bwsGroup.POST("/award", authSvc.User, award) |
|
bwsGroup.GET("/lottery", authSvc.User, lottery) |
|
bwsGroup.GET("/lottery/check", authSvc.User, lotteryCheck) |
|
bwsGroup.GET("/redis/check", authSvc.User, redisInfo) |
|
bwsGroup.GET("/key/info", authSvc.User, keyInfo) |
|
bwsGroup.GET("/admin/check", authSvc.User, adminInfo) |
|
} |
|
bnjGroup := group.Group("/bnj2019") |
|
{ |
|
bnjGroup.GET("/preview", authSvc.Guest, previewInfo) |
|
// TODO remove guest check |
|
bnjGroup.GET("/timeline", authSvc.Guest, timeline) |
|
bnjGroup.POST("/fail", fail) |
|
bnjGroup.POST("/reset", authSvc.User, reset) |
|
bnjGroup.POST("/reward", authSvc.User, reward) |
|
} |
|
kfcGroup := group.Group("/kfc") |
|
{ |
|
kfcGroup.GET("/info", authSvc.User, kfcInfo) |
|
kfcGroup.GET("/use", kfcUse) |
|
} |
|
} |
|
} |
|
|
|
func internalRouter(e *bm.Engine) { |
|
group := e.Group("/x/internal/activity") |
|
{ |
|
group.GET("/subject", vfySvc.Verify, subject) |
|
group.POST("/vote", vfySvc.Verify, vote) |
|
group.GET("/ltime", vfySvc.Verify, ltime) |
|
group.GET("/reddot", vfySvc.Verify, redDot) |
|
group.GET("/reddot/clear", vfySvc.Verify, authSvc.Guest, clearRedDot) |
|
group.GET("/object/stat/set", vfySvc.Verify, setSubjectStat) |
|
group.GET("/view/rank/set", vfySvc.Verify, setViewRank) |
|
group.GET("/like/content/set", vfySvc.Verify, setLikeContent) |
|
group.GET("/likeact/add", vfySvc.Verify, addLikeAct) |
|
group.GET("/likeact/cache", vfySvc.Verify, likeActCache) |
|
group.GET("/oids/info", vfySvc.Verify, likeOidsInfo) |
|
spGroup := group.Group("/sports") |
|
{ |
|
spGroup.GET("/qq", vfySvc.Verify, qq) |
|
spGroup.GET("/news", vfySvc.Verify, news) |
|
} |
|
mactchGroup := group.Group("/match") |
|
{ |
|
mactchGroup.GET("", matchs) |
|
mactchGroup.GET("/unstart", vfySvc.Verify, unStart) |
|
mactchGroup.POST("/cache/clear", clearCache) |
|
guGroup := mactchGroup.Group("/guess") |
|
{ |
|
guGroup.GET("", vfySvc.Verify, guess) |
|
guGroup.GET("/list", vfySvc.Verify, listGuess) |
|
guGroup.POST("/add", vfySvc.Verify, addGuess) |
|
} |
|
foGroup := mactchGroup.Group("/follow") |
|
{ |
|
foGroup.GET("", vfySvc.Verify, follow) |
|
foGroup.POST("/add", vfySvc.Verify, addFollow) |
|
} |
|
} |
|
initGroup := group.Group("/init") |
|
{ |
|
initGroup.GET("/subject", vfySvc.Verify, subjectInit) |
|
initGroup.GET("/like", vfySvc.Verify, likeInit) |
|
initGroup.GET("/likeact", vfySvc.Verify, likeActCountInit) |
|
initGroup.GET("/subject/list", vfySvc.Verify, subjectLikeListInit) |
|
} |
|
//tmGroup := group.Group("/timemachine") |
|
//{ |
|
// tmGroup.GET("/start", startTmProc) |
|
// tmGroup.GET("/stop", stopTmProc) |
|
//} |
|
kfcIGroup := group.Group("/kfc") |
|
{ |
|
kfcIGroup.POST("/deliver", vfySvc.Verify, deliverKfc) |
|
} |
|
group.GET("/bnj2019/time/del", delTime) |
|
} |
|
} |
|
|
|
func ping(c *bm.Context) { |
|
if err := likeSvc.Ping(c); err != nil { |
|
log.Error("activity interface ping error(%v)", err) |
|
c.AbortWithStatus(http.StatusServiceUnavailable) |
|
} |
|
} |
|
|
|
func register(c *bm.Context) { |
|
c.JSON(nil, nil) |
|
}
|
|
|