package validator import ( "RenewCMS/internal/domain/image" "RenewCMS/internal/domain/site" "regexp" "github.com/go-playground/validator/v10" ) const inviteEmailTag = "inviteemail" const variantNameTag = "variantname" const siteKeyTag = "sitekey" const siteNameTag = "sitename" var inviteEmailPattern = regexp.MustCompile(`^[^\s@]+@[^\s@.]+(\.[^\s@.]+)+$`) var Validate *validator.Validate func InitValidator() { Validate = validator.New() _ = Validate.RegisterValidation(inviteEmailTag, isInviteEmail) _ = Validate.RegisterValidation(variantNameTag, isVariantName) _ = Validate.RegisterValidation(siteKeyTag, isSiteKey) _ = Validate.RegisterValidation(siteNameTag, isSiteName) } func isSiteKey(field validator.FieldLevel) bool { return site.IsValidKey(field.Field().String()) } func isSiteName(field validator.FieldLevel) bool { return site.IsValidName(field.Field().String()) } func isVariantName(field validator.FieldLevel) bool { return image.IsValidVariantName(field.Field().String()) } func isInviteEmail(field validator.FieldLevel) bool { return inviteEmailPattern.MatchString(field.Field().String()) }