30 lines
542 B
Go
30 lines
542 B
Go
|
|
package utils
|
||
|
|
|
||
|
|
import (
|
||
|
|
"fmt"
|
||
|
|
|
||
|
|
"github.com/gin-gonic/gin"
|
||
|
|
"github.com/go-playground/validator/v10"
|
||
|
|
)
|
||
|
|
|
||
|
|
var validate = validator.New()
|
||
|
|
|
||
|
|
func BindAndValidate(data any, c *gin.Context) error {
|
||
|
|
fmt.Println("🔍 BindAndValidate called")
|
||
|
|
|
||
|
|
if err := c.ShouldBindJSON(data); err != nil {
|
||
|
|
fmt.Println("❌ Bind error:", err)
|
||
|
|
return err
|
||
|
|
}
|
||
|
|
|
||
|
|
fmt.Println("✅ Bind success:", data)
|
||
|
|
|
||
|
|
if err := validate.Struct(data); err != nil {
|
||
|
|
fmt.Println("❌ Validation error:", err)
|
||
|
|
return err
|
||
|
|
}
|
||
|
|
|
||
|
|
fmt.Println("✅ Validation success")
|
||
|
|
return nil
|
||
|
|
}
|