package context import ( "git.trj.tw/golang/go-gallery/modules/apimsg" "github.com/gin-gonic/gin" "github.com/gin-gonic/gin/binding" ) // Context custom patch context type Context struct { *gin.Context C map[string]interface{} } // CustomMiddle func type CustomMiddle func(*Context) // PatchContext func func PatchContext(handler func(*Context)) gin.HandlerFunc { return func(c *gin.Context) { ctx := &Context{ Context: c, C: make(map[string]interface{}), } handler(ctx) } } // BindData - func (c *Context) BindData(i interface{}) error { b := binding.Default(c.Request.Method, c.ContentType()) return c.ShouldBindWith(i, b) } // NotFound response func (c *Context) NotFound(msg interface{}) { obj := apimsg.GetRes("NotFound", msg) c.AbortWithStatusJSON(obj.Status, obj.Obj) } // DataFormat error response func (c *Context) DataFormat(msg interface{}) { obj := apimsg.GetRes("DataFormat", msg) c.AbortWithStatusJSON(obj.Status, obj.Obj) } // Success response func (c *Context) Success(msg interface{}) { obj := apimsg.GetRes("Success", msg) c.AbortWithStatusJSON(obj.Status, obj.Obj) } // ServerError response func (c *Context) ServerError(msg interface{}) { obj := apimsg.GetRes("InternalError", msg) c.AbortWithStatusJSON(obj.Status, obj.Obj) } // CustomRes send othen response func (c *Context) CustomRes(name string, msg interface{}) { obj := apimsg.GetRes(name, msg) c.AbortWithStatusJSON(obj.Status, obj.Obj) }