aboutsummaryrefslogtreecommitdiff
path: root/internal/validator/validator.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/validator/validator.go')
-rw-r--r--internal/validator/validator.go24
1 files changed, 24 insertions, 0 deletions
diff --git a/internal/validator/validator.go b/internal/validator/validator.go
index 63fe75f0..9b3cfd90 100644
--- a/internal/validator/validator.go
+++ b/internal/validator/validator.go
@@ -7,8 +7,11 @@ import (
"fmt"
"net/url"
"regexp"
+ "strings"
)
+var domainRegex = regexp.MustCompile(`^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$`)
+
// ValidateRange makes sure the offset/limit values are valid.
func ValidateRange(offset, limit int) error {
if offset < 0 {
@@ -43,3 +46,24 @@ func IsValidURL(absoluteURL string) bool {
_, err := url.ParseRequestURI(absoluteURL)
return err == nil
}
+
+func IsValidDomain(domain string) bool {
+ domain = strings.ToLower(domain)
+
+ if len(domain) < 1 || len(domain) > 253 {
+ return false
+ }
+
+ return domainRegex.MatchString(domain)
+}
+
+func IsValidDomainList(value string) bool {
+ domains := strings.Split(strings.TrimSpace(value), " ")
+ for _, domain := range domains {
+ if !IsValidDomain(domain) {
+ return false
+ }
+ }
+
+ return true
+}