bilibili-backup/app/service/main/account-recovery/http/http.go
2019-04-22 02:59:20 +00:00

73 lines
1.9 KiB
Go

package http
import (
"net/http"
"go-common/app/service/main/account-recovery/conf"
"go-common/app/service/main/account-recovery/service"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/middleware/permit"
"go-common/library/net/http/blademaster/middleware/verify"
)
var (
srv *service.Service
vfy *verify.Verify
authSvr *permit.Permit
)
// Init init
func Init(c *conf.Config) {
srv = service.New(c)
vfy = verify.New(c.Verify)
authSvr = permit.New(c.Auth)
engine := bm.DefaultServer(c.BM)
router(engine)
if err := engine.Start(); err != nil {
log.Error("engine.Start() error(%v)", err)
panic(err)
}
}
func router(e *bm.Engine) {
e.Ping(ping)
e.Register(register)
g := e.Group("/x/account-recovery")
{
g.POST("/query", queryAccount)
g.POST("/commit", commitInfo)
g.POST("/getCaptchaMail", getCaptchaMail)
g.GET("/captcha/token", webToken)
g.POST("/captcha/verify", verifyCode)
g.POST("/file/upload", bm.CORS(), fileUpload)
}
adminGroup := e.Group("/x/admin/account-recovery", authSvr.Permit("ACCOUNT_RECOVERY_NORMAL"))
{
adminGroup.GET("/queryCon", queryConWithBusiness(""))
adminGroup.GET("/queryCon/account", authSvr.Permit("ACCOUNT_RECOVERY_ACCOUNT"), queryConWithBusiness("account"))
adminGroup.GET("/queryCon/game", authSvr.Permit("ACCOUNT_RECOVERY_GAME"), queryConWithBusiness("game"))
// todo judge,batchJudge也需要分配权限
adminGroup.POST("/judge", judge)
adminGroup.POST("/batchJudge", batchJudge)
adminGroup.POST("/gameList", gameList)
}
internalGroup := e.Group("/x/internal/account-recovery", vfy.Verify)
{
internalGroup.POST("/compare", compareInfo)
internalGroup.POST("/sendMail", sendMail)
}
}
func ping(c *bm.Context) {
if err := srv.Ping(c); err != nil {
log.Error("ping error(%v)", err)
c.AbortWithStatus(http.StatusServiceUnavailable)
}
}
func register(c *bm.Context) {
c.JSON(map[string]interface{}{}, nil)
}