37 lines
674 B
Go
37 lines
674 B
Go
package validator
|
|
|
|
import (
|
|
"errors"
|
|
"github.com/labstack/echo/v4"
|
|
"strings"
|
|
|
|
validator "github.com/go-playground/validator/v10"
|
|
)
|
|
|
|
type Validator struct {
|
|
validator *validator.Validate
|
|
}
|
|
|
|
func NewValidator() *Validator {
|
|
return &Validator{validator: validator.New()}
|
|
}
|
|
|
|
func (val *Validator) Validate(i interface{}) error {
|
|
err := val.validator.Struct(i)
|
|
if err == nil {
|
|
return nil
|
|
}
|
|
err = errors.New(strings.Replace(err.Error(), "\n", ", ", -1))
|
|
return err
|
|
}
|
|
|
|
func ParseAndValidate(i interface{}, request echo.Context) error {
|
|
if err := request.Bind(i); err != nil {
|
|
return err
|
|
}
|
|
if err := request.Validate(i); err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|