64 lines
1.4 KiB
Go
64 lines
1.4 KiB
Go
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)
|
|
}
|