uniugm/admin/lib/web/engine.go

35 lines
814 B
Go
Raw Normal View History

2025-04-22 15:46:48 +08:00
package web
import "github.com/gin-gonic/gin"
type Engine struct {
*RoutesGroup
newContextFun func(ctx *gin.Context) IContext
rawEngine *gin.Engine
}
func New(newContextFun func(ctx *gin.Context) IContext) *Engine {
rawE := gin.Default()
e := &Engine{
RoutesGroup: newRoutesGroup(&rawE.RouterGroup, newContextFun),
newContextFun: newContextFun,
rawEngine: rawE,
}
return e
}
func (e *Engine) Use(middlewares ...HandlerFunc) {
e.rawEngine.Use(getGinHandlerFunWithRequest(e.newContextFun, middlewares...)...)
}
func (e *Engine) Run(addr string) error {
return e.rawEngine.Run(addr)
}
func (e *Engine) TravelPaths(travelFun func(path string, parentDesc string, method string, handlers ...HandlerFunc)) {
for _, c := range e.RoutesGroup.node.child {
c.travel("", "", travelFun)
}
}