66 lines
1.4 KiB
Go
66 lines
1.4 KiB
Go
package http
|
|
|
|
import (
|
|
"go-common/app/admin/main/block/conf"
|
|
"go-common/app/admin/main/block/model"
|
|
"go-common/app/admin/main/block/service"
|
|
"go-common/library/ecode"
|
|
"go-common/library/log"
|
|
bm "go-common/library/net/http/blademaster"
|
|
"go-common/library/net/http/blademaster/middleware/permit"
|
|
|
|
"github.com/pkg/errors"
|
|
)
|
|
|
|
var (
|
|
authSvc *permit.Permit
|
|
svc *service.Service
|
|
)
|
|
|
|
// Init http server
|
|
func Init() {
|
|
initService()
|
|
engine := bm.DefaultServer(conf.Conf.BM)
|
|
innerRouter(engine)
|
|
if err := engine.Start(); err != nil {
|
|
log.Error("engine.Start() error(%v)", err)
|
|
panic(err)
|
|
}
|
|
}
|
|
|
|
// initService init biz services
|
|
func initService() {
|
|
authSvc = permit.New(conf.Conf.Auth)
|
|
svc = service.New()
|
|
}
|
|
|
|
func innerRouter(e *bm.Engine) {
|
|
e.GET("/monitor/ping", func(c *bm.Context) {})
|
|
cb := e.Group("/x/admin/block", authSvc.Permit(conf.Conf.Perms.Perm["search"]))
|
|
{
|
|
cb.POST("/search", blockSearch)
|
|
cb.GET("/history", blockHistory)
|
|
}
|
|
cb = e.Group("/x/admin/block", authSvc.Permit(conf.Conf.Perms.Perm["block"]))
|
|
{
|
|
cb.POST("", batchBlock)
|
|
}
|
|
cb = e.Group("/x/admin/block", authSvc.Permit(conf.Conf.Perms.Perm["remove"]))
|
|
{
|
|
cb.POST("/remove", batchRemove)
|
|
}
|
|
}
|
|
|
|
func bind(c *bm.Context, v model.ParamValidator) (err error) {
|
|
if err = c.Bind(v); err != nil {
|
|
err = errors.WithStack(err)
|
|
return
|
|
}
|
|
if !v.Validate() {
|
|
err = ecode.RequestErr
|
|
c.JSON(nil, ecode.RequestErr)
|
|
return
|
|
}
|
|
return
|
|
}
|