123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- package http
- import (
- "net/http"
- "strconv"
- "go-common/app/interface/main/favorite/conf"
- "go-common/app/interface/main/favorite/service"
- "go-common/library/log"
- "go-common/library/log/anticheat"
- bm "go-common/library/net/http/blademaster"
- "go-common/library/net/http/blademaster/middleware/antispam"
- "go-common/library/net/http/blademaster/middleware/auth"
- "go-common/library/net/http/blademaster/middleware/supervisor"
- "go-common/library/net/http/blademaster/middleware/verify"
- )
- var (
- favSvc *service.Service
- authSvc *auth.Auth
- verifySvc *verify.Verify
- antispamM *antispam.Antispam
- supervisorM *supervisor.Supervisor
- collector *anticheat.AntiCheat
- )
- // Init init router
- func Init(c *conf.Config, svc *service.Service) {
- verifySvc = verify.New(c.Verify)
- authSvc = auth.New(c.Auth)
- antispamM = antispam.New(c.Antispam)
- supervisorM = supervisor.New(c.Supervisor)
- favSvc = svc
- if c.Infoc2 != nil {
- collector = anticheat.New(c.Infoc2)
- }
- // init outer router
- engineOut := bm.DefaultServer(c.BM)
- outerRouter(engineOut)
- internalRouter(engineOut)
- // init Out serve
- if err := engineOut.Start(); err != nil {
- log.Error("engineOut.Start() error(%v)", err)
- panic(err)
- }
- }
- // outerRouter init outer router api path
- func outerRouter(e *bm.Engine) {
- // init api
- e.GET("/monitor/ping", ping)
- folderG := e.Group("/x/v2/fav/folder")
- {
- folderG.GET("", authSvc.Guest, videoFolders)
- folderG.POST("/add", authSvc.User, antispamM.ServeHTTP, supervisorM.ServeHTTP, addVideoFolder)
- folderG.POST("/del", authSvc.User, antispamM.ServeHTTP, delVideoFolder)
- folderG.POST("/rename", authSvc.User, antispamM.ServeHTTP, supervisorM.ServeHTTP, renameVideoFolder)
- folderG.POST("/public", authSvc.User, antispamM.ServeHTTP, upStateVideoFolder)
- folderG.POST("/sort", authSvc.User, antispamM.ServeHTTP, sortVideoFolders)
- }
- videoG := e.Group("/x/v2/fav/video")
- {
- videoG.GET("", authSvc.Guest, favVideo)
- videoG.GET("/tlist", authSvc.Guest, tidList)
- videoG.GET("/newest", authSvc.User, favVideoNewest)
- videoG.POST("/add", authSvc.User, antispamM.ServeHTTP, addFavVideo)
- videoG.POST("/del", authSvc.User, antispamM.ServeHTTP, delFavVideo)
- videoG.POST("/mdel", authSvc.User, antispamM.ServeHTTP, delFavVideos)
- videoG.POST("/move", authSvc.User, antispamM.ServeHTTP, moveFavVideos)
- videoG.POST("/copy", authSvc.User, antispamM.ServeHTTP, copyFavVideos)
- videoG.GET("/favoureds", authSvc.User, isFavoureds)
- videoG.GET("/favoured", authSvc.User, isFavoured)
- videoG.GET("/default", authSvc.User, inDefaultFav)
- videoG.GET("/cleaned", authSvc.User, isCleaned)
- videoG.POST("/clean", authSvc.User, cleanInvalidArcs)
- }
- topicG := e.Group("/x/v2/fav/topic")
- {
- topicG.POST("/add", authSvc.User, antispamM.ServeHTTP, addFavTopic)
- topicG.POST("/del", authSvc.User, antispamM.ServeHTTP, delFavTopic)
- topicG.GET("/favoured", authSvc.User, isTopicFavoured)
- topicG.GET("", authSvc.User, favTopics)
- }
- }
- // internalRouter init internal router api path
- func internalRouter(e *bm.Engine) {
- // init api
- folderG := e.Group("/x/internal/v2/fav/folder")
- {
- folderG.GET("", verifySvc.Verify, setMid, videoFolders)
- folderG.POST("/add", verifySvc.VerifyUser, addVideoFolder)
- folderG.POST("/del", verifySvc.VerifyUser, delVideoFolder)
- folderG.POST("/rename", verifySvc.VerifyUser, renameVideoFolder)
- folderG.POST("/public", verifySvc.VerifyUser, upStateVideoFolder)
- folderG.POST("/sort", verifySvc.VerifyUser, sortVideoFolders)
- }
- videoG := e.Group("/x/internal/v2/fav/video")
- {
- videoG.GET("", verifySvc.Verify, setMid, favVideo)
- videoG.GET("/tlist", verifySvc.Verify, setMid, tidList)
- videoG.GET("/newest", verifySvc.VerifyUser, favVideoNewest)
- videoG.POST("/add", verifySvc.VerifyUser, addFavVideo)
- videoG.POST("/del", verifySvc.VerifyUser, delFavVideo)
- videoG.POST("/mdel", verifySvc.VerifyUser, delFavVideos)
- videoG.POST("/move", verifySvc.VerifyUser, moveFavVideos)
- videoG.POST("/copy", verifySvc.VerifyUser, copyFavVideos)
- videoG.GET("/favoureds", verifySvc.VerifyUser, isFavoureds)
- videoG.GET("/favoured", verifySvc.VerifyUser, isFavoured)
- videoG.GET("/default", verifySvc.VerifyUser, inDefaultFav)
- videoG.GET("/cleaned", verifySvc.VerifyUser, isCleaned)
- videoG.POST("/clean", verifySvc.VerifyUser, cleanInvalidArcs)
- }
- topicG := e.Group("/x/internal/v2/fav/topic")
- {
- topicG.POST("/add", verifySvc.VerifyUser, addFavTopic)
- topicG.POST("/del", verifySvc.VerifyUser, delFavTopic)
- topicG.GET("/favoured", verifySvc.VerifyUser, isTopicFavoured)
- topicG.GET("", verifySvc.VerifyUser, favTopics)
- }
- }
- func setMid(c *bm.Context) {
- var (
- err error
- mid int64
- )
- req := c.Request
- midStr := req.Form.Get("mid")
- if midStr != "" {
- if mid, err = strconv.ParseInt(midStr, 10, 64); err != nil {
- c.JSON(nil, err)
- c.Abort()
- return
- }
- }
- c.Set("mid", mid)
- }
- // ping check server ok.
- func ping(c *bm.Context) {
- if err := favSvc.Ping(c); err != nil {
- log.Error("favorite http service ping error(%v)", err)
- c.AbortWithStatus(http.StatusServiceUnavailable)
- }
- }
|