Get rid of checks when creating constructs. Check should handle this.
This commit is contained in:
33
atom.go
33
atom.go
@@ -2,6 +2,7 @@ package atom
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"html"
|
||||
"mime"
|
||||
"regexp"
|
||||
"strings"
|
||||
@@ -10,6 +11,10 @@ import (
|
||||
"golang.org/x/text/language"
|
||||
)
|
||||
|
||||
func Unescape(s string) string {
|
||||
return html.UnescapeString(s)
|
||||
}
|
||||
|
||||
// isValidIRI checks whether an IRI is valid or not. It returns a bool.
|
||||
// https://www.w3.org/2011/04/XMLSchema/TypeLibrary-IRI-RFC3987.xsd
|
||||
func isValidIRI(iri string) bool {
|
||||
@@ -17,6 +22,15 @@ func isValidIRI(iri string) bool {
|
||||
return regexp.MustCompile(pattern).MatchString(iri)
|
||||
}
|
||||
|
||||
// NewIRI creates a new IRI. It returns a string and an error.
|
||||
func NewIRI(iri string) (string, error) {
|
||||
if !isValidIRI(iri) {
|
||||
return "", fmt.Errorf("iri %v not correctly formatted", iri)
|
||||
}
|
||||
|
||||
return iri, nil
|
||||
}
|
||||
|
||||
// isCorrectlyEscaped checks whether a string is correctly escaped as per
|
||||
// RFC4287. It returns a bool.
|
||||
func isCorrectlyEscaped(text string) bool {
|
||||
@@ -69,12 +83,31 @@ func isValidMediaType(m string) bool {
|
||||
return true
|
||||
}
|
||||
|
||||
// NewMediaType creates a new MediaType. It returns a string and an error.
|
||||
func NewMediaType(m string) (string, error) {
|
||||
if !isValidMediaType(m) {
|
||||
return "", fmt.Errorf("media type %v invalid", m)
|
||||
}
|
||||
|
||||
mediaType, _, _ := mime.ParseMediaType(m)
|
||||
return mediaType, nil
|
||||
}
|
||||
|
||||
// isValidLanguageTag checks whether a LanguageTag is valid. It returns a bool.
|
||||
func isValidLanguageTag(languageTag string) bool {
|
||||
_, err := language.Parse(languageTag)
|
||||
return err == nil
|
||||
}
|
||||
|
||||
// NewLanguageTag creates a new LanguageTag. It returns a string and an error.
|
||||
func NewLanguageTag(l string) (string, error) {
|
||||
if !isValidLanguageTag(l) {
|
||||
return "", fmt.Errorf("language tag %v invalid", l)
|
||||
}
|
||||
|
||||
return l, nil
|
||||
}
|
||||
|
||||
// isValidAttribute checks whether an Attribute is valid. It returns a bool.
|
||||
func isValidAttribute(attribute string) bool {
|
||||
regex := regexp.MustCompile(`^[a-zA-Z0-9_]+="[^"]*"$`)
|
||||
|
Reference in New Issue
Block a user