43 lines
1.1 KiB
Go
43 lines
1.1 KiB
Go
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())
|
|
}
|