package handler import ( "net/http" "reflect" "strings" "gitea.frenchtouch.duckdns.org/kratisto/budget-backend/internal/storage/validators" "gitea.frenchtouch.duckdns.org/kratisto/budget-backend/internal/utils" "github.com/gin-gonic/gin" "gopkg.in/go-playground/validator.v9" ) type Config struct { Mock bool DBConnectionURI string Port int LogLevel string LogFormat string } type Context struct { Validator *validator.Validate } func NewContext() *Context { return &Context{Validator: newValidator()} } func newValidator() *validator.Validate { va := validator.New() va.RegisterTagNameFunc(func(fld reflect.StructField) string { name := strings.SplitN(fld.Tag.Get("json"), ",", 2) if len(name) < 1 { return "" } return name[0] }) for k, v := range validators.CustomValidators { if v.Validator != nil { err := va.RegisterValidationCtx(k, v.Validator) if err != nil { return nil } } } return va } func (hc *Context) GetHealth(c *gin.Context) { utils.JSON(c.Writer, http.StatusNoContent, nil) }