Files
EnGin/internal/middleware/bind.go
T

45 lines
718 B
Go

package middleware
import (
"EnGin/internal/utils/res"
"github.com/gin-gonic/gin"
)
func BindJsonMiddleware[T any](c *gin.Context) {
var cr T
err := c.ShouldBindJSON(&cr)
if err != nil {
res.FailWithError(err, c)
c.Abort()
return
}
c.Set("request", cr)
}
func BindQueryMiddleware[T any](c *gin.Context) {
var cr T
err := c.ShouldBindQuery(&cr)
if err != nil {
res.FailWithError(err, c)
c.Abort()
return
}
c.Set("request", cr)
}
func BindUriMiddleware[T any](c *gin.Context) {
var cr T
err := c.ShouldBindUri(&cr)
if err != nil {
res.FailWithError(err, c)
c.Abort()
return
}
c.Set("request", cr)
}
func GetBind[T any](c *gin.Context) (cr T) {
return c.MustGet("request").(T)
}