validation.go 607 B

1234567891011121314151617181920212223
  1. package validation
  2. // ValidationError represents a single validation error
  3. type ValidationError struct {
  4. Field string `json:"field"`
  5. Message string `json:"message"`
  6. }
  7. // Validator defines the interface for request validation
  8. type Validator interface {
  9. Validate() []ValidationError
  10. }
  11. // Validate validates a struct that implements the Validator interface
  12. func Validate(v interface{}) []ValidationError {
  13. if validator, ok := v.(Validator); ok {
  14. return validator.Validate()
  15. }
  16. return []ValidationError{{
  17. Field: "request",
  18. Message: "request type does not implement Validator interface",
  19. }}
  20. }