add middlewares, handlers and database models

This commit is contained in:
juancwu 2025-12-16 10:46:34 -05:00
commit 7e288ea67a
24 changed files with 1045 additions and 14 deletions

View file

@ -0,0 +1,27 @@
package validation
import (
"errors"
"net/mail"
)
// ValidateEmail validates email format and length
// Uses Go's built-in net/mail parser which follows RFC 5322
func ValidateEmail(email string) error {
// Check length (RFC 5321: local part max 64, domain max 255, total max 254 with @)
if len(email) > 254 {
return errors.New("email address is too long (max 254 characters)")
}
if email == "" {
return errors.New("email address is required")
}
// Parse using Go's RFC 5322 compliant parser
_, err := mail.ParseAddress(email)
if err != nil {
return errors.New("invalid email address format")
}
return nil
}