45 lines
718 B
Go
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)
|
|
}
|