bilibili-backup/app/interface/main/reply/http/http.go
2019-04-22 02:59:20 +00:00

107 lines
3.8 KiB
Go

package http
import (
"go-common/app/interface/main/reply/conf"
"go-common/app/interface/main/reply/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/verify"
)
var (
cnf *conf.Config
rpSvr *service.Service
authSvc *auth.Auth
verifySvc *verify.Verify
)
// Init init http
func Init(c *conf.Config) {
initService(c)
engine := bm.DefaultServer(c.BM)
outerRouter(engine)
interRouter(engine)
if err := engine.Start(); err != nil {
log.Error("xhttp.Serve error(%v)", err)
panic(err)
}
}
func initService(c *conf.Config) {
cnf = c
authSvc = auth.New(c.Auth)
verifySvc = verify.New(c.Verify)
rpSvr = service.New(conf.Conf)
}
func outerRouter(e *bm.Engine) {
// init api
e.GET("/monitor/ping", ping)
// reply
group := e.Group("/x/v2/reply")
{
group.GET("", authSvc.Guest, reply)
group.GET("/cursor", authSvc.Guest, replyByCursor)
group.GET("/reply/cursor", authSvc.Guest, subReplyByCursor)
group.GET("/hot", replyHots)
group.GET("/emojis", emojis)
group.GET("/web/emojis", emojis)
group.GET("/info", authSvc.Guest, replyInfo)
group.GET("/minfo", authSvc.Guest, replyMultiInfo)
group.GET("/reply", authSvc.Guest, replyReply)
group.GET("/jump", authSvc.Guest, jumpReply)
group.GET("/count", authSvc.Guest, replyCount)
group.GET("/mcount", authSvc.Guest, replyMultiCount)
group.GET("/log", authSvc.Guest, replyAdminLog)
group.POST("/add", authSvc.User, addReply)
group.POST("/action", authSvc.User, likeReply)
group.POST("/hate", authSvc.User, hateReply)
group.POST("/show", authSvc.User, showReply)
group.POST("/hide", authSvc.User, hideReply)
group.POST("/del", authSvc.User, delReply)
group.POST("/top", authSvc.User, AddTopReply)
group.POST("/report", authSvc.User, reportReply)
group.GET("/topics", authSvc.Guest, getTopics)
group.GET("/report/related", authSvc.Guest, reportRelated)
group.GET("/report/reply", authSvc.Guest, reportSndReply)
group.GET("/dialog", authSvc.Guest, dialog)
group.GET("/dialog/cursor", authSvc.Guest, dialogByCursor)
// 5.37需求
group.GET("/main", authSvc.Guest, xreply)
group.GET("/folded", authSvc.Guest, subFolder)
group.GET("/reply/folded", authSvc.Guest, rootFolder)
}
}
func interRouter(e *bm.Engine) {
// internal admin
group := e.Group("/x/internal/v2/reply")
{
group.GET("/subject", verifySvc.Verify, adminSubject)
group.POST("/subject/mid", verifySvc.Verify, adminSubjectMid)
group.GET("/hot", verifySvc.Verify, replyHots)
group.POST("/subject/state", verifySvc.Verify, adminSubjectState)
group.POST("/subject/regist", verifySvc.Verify, adminSubRegist)
group.POST("/audit", verifySvc.Verify, adminAuditSub)
group.POST("/pass", verifySvc.Verify, adminPassReply)
group.POST("/recover", verifySvc.Verify, adminRecoverReply)
group.POST("/edit", verifySvc.Verify, adminEditReply)
group.POST("/del", verifySvc.Verify, adminDelReply)
group.POST("/top", verifySvc.Verify, adminAddTopReply)
group.POST("/report/del", verifySvc.Verify, adminDelReplyByReport)
group.POST("/report/ignore", verifySvc.Verify, adminIgnoreReport)
group.POST("/report/recover", verifySvc.Verify, adminReportRecover)
group.POST("/report/transfer", verifySvc.Verify, adminTransferReport)
group.POST("/report/state", verifySvc.Verify, adminReportStateSet)
group.GET("/info", verifySvc.Verify, replyInfo)
group.GET("/count", verifySvc.Verify, replyCount)
group.GET("/counts", verifySvc.Verify, replyCounts)
group.GET("/minfo", verifySvc.Verify, replyMultiInfo)
group.GET("/mcount", verifySvc.Verify, replyMultiCount)
group.GET("/record", verifySvc.Verify, replyRecord)
group.GET("/hots", verifySvc.Verify, hotsBatch)
group.GET("/ishot", isHotReply)
}
}