validate.go 392 B

1234567891011121314151617181920212223242526
  1. package request
  2. import (
  3. "github.com/gin-gonic/gin"
  4. )
  5. type ValidateError struct {
  6. Err error
  7. }
  8. func NewValidateError(err error) ValidateError {
  9. return ValidateError{Err: err}
  10. }
  11. func (e ValidateError) Error() string {
  12. return e.Err.Error()
  13. }
  14. func Check[T any](c *gin.Context, obj *T) *T {
  15. if err := c.ShouldBindJSON(obj); err != nil {
  16. panic(NewValidateError(err))
  17. }
  18. return obj
  19. }