220 lines
6.8 KiB
Go
220 lines
6.8 KiB
Go
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)
|
|
}
|