12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- package mhayaGin
- import (
- "github.com/gin-gonic/gin"
- cfacade "github.com/mhaya/facade"
- )
- type GinHandlerFunc func(ctx *Context)
- type IController interface {
- PreInit(app cfacade.IApplication, engine *gin.Engine)
- Init()
- Stop()
- }
- func BindHandlers(handlers []GinHandlerFunc) []gin.HandlerFunc {
- var list []gin.HandlerFunc
- for _, handler := range handlers {
- list = append(list, BindHandler(handler))
- }
- return list
- }
- func BindHandler(handler func(ctx *Context)) gin.HandlerFunc {
- return func(c *gin.Context) {
- context := new(Context)
- context.Context = c
- handler(context)
- }
- }
- type BaseController struct {
- App cfacade.IApplication
- Engine *gin.Engine
- }
- func (b *BaseController) PreInit(app cfacade.IApplication, engine *gin.Engine) {
- b.App = app
- b.Engine = engine
- }
- func (b *BaseController) Init() {
- }
- func (b *BaseController) Stop() {
- }
- func (b *BaseController) Group(relativePath string, handlers ...GinHandlerFunc) *Group {
- group := &Group{
- RouterGroup: b.Engine.Group(relativePath, BindHandlers(handlers)...),
- }
- return group
- }
- func (b *BaseController) Any(relativePath string, handlers ...GinHandlerFunc) {
- b.Engine.Any(relativePath, BindHandlers(handlers)...)
- }
- func (b *BaseController) GET(relativePath string, handlers ...GinHandlerFunc) {
- b.Engine.GET(relativePath, BindHandlers(handlers)...)
- }
- func (b *BaseController) POST(relativePath string, handlers ...GinHandlerFunc) {
- b.Engine.POST(relativePath, BindHandlers(handlers)...)
- }
|