You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.4 KiB
65 lines
1.4 KiB
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 |
|
}
|
|
|