From 57c959790db94d3b50d907396eae6ef258bbd047 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E4=BC=9F=E4=B9=90?= Date: Tue, 21 Feb 2023 17:56:43 +0800 Subject: [PATCH] x --- response/response.go | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/response/response.go b/response/response.go index a5e4f86..ddd02f6 100644 --- a/response/response.go +++ b/response/response.go @@ -21,12 +21,27 @@ func New(ctx *gin.Context) *result { func (s *result) BindQuery(v any) error { decoder := form.NewDecoder() decoder.SetTagName("json") - return decoder.Decode(v, s.ctx.Request.URL.Query()) + err := decoder.Decode(v, s.ctx.Request.URL.Query()) + if err != nil { + return err + } + return s.Validate(v) +} +func (s *result) Validate(v any) error { + if vv, ok := v.(interface { + Validate() error + }); ok { + return vv.Validate() + } + return nil } func (s *result) BindJSON(v any) error { body := s.ctx.Request.Body decoder := json.NewDecoder(body) - return decoder.Decode(v) + if err := decoder.Decode(v); err != nil { + return err + } + return s.Validate(v) } func (s *result) Error(err error) { if err == nil {