Assume validated url.URL for NewActorID

This commit is contained in:
erik 2023-12-22 13:42:07 +01:00 committed by Michael Jerger
parent 6e4467d49d
commit e69e5df089

View file

@ -31,8 +31,9 @@ type RepositoryId struct {
ActorId ActorId
} }
func newActorId(uri, source string) (ActorId, error) { // newActorId receives already validated inputs
validatedUri, _ := url.Parse(uri) // ToDo: Why no err treatment at this place? func newActorId(validatedUri *url.URL, source string) (ActorId, error) {
pathWithActorID := strings.Split(validatedUri.Path, "/") pathWithActorID := strings.Split(validatedUri.Path, "/")
if containsEmptyString(pathWithActorID) { if containsEmptyString(pathWithActorID) {
pathWithActorID = removeEmptyStrings(pathWithActorID) pathWithActorID = removeEmptyStrings(pathWithActorID)
@ -48,7 +49,7 @@ func newActorId(uri, source string) (ActorId, error) {
result.Host = validatedUri.Hostname() result.Host = validatedUri.Hostname()
result.Path = pathWithoutActorID result.Path = pathWithoutActorID
result.Port = validatedUri.Port() result.Port = validatedUri.Port()
result.UnvalidatedInput = uri result.UnvalidatedInput = validatedUri.String()
if valid, err := result.IsValid(); !valid { if valid, err := result.IsValid(); !valid {
return ActorId{}, err return ActorId{}, err
@ -62,8 +63,12 @@ func NewPersonId(uri string, source string) (PersonId, error) {
//if !validation.IsValidExternalURL(uri) { //if !validation.IsValidExternalURL(uri) {
// return PersonId{}, fmt.Errorf("uri %s is not a valid external url", uri) // return PersonId{}, fmt.Errorf("uri %s is not a valid external url", uri)
//} //}
validatedUri, err := url.ParseRequestURI(uri) // ToDo: Why no err treatment at this place?
if err != nil {
return PersonId{}, err
}
actorId, err := newActorId(uri, source) actorId, err := newActorId(validatedUri, source)
if err != nil { if err != nil {
return PersonId{}, err return PersonId{}, err
} }
@ -83,7 +88,12 @@ func NewRepositoryId(uri string, source string) (RepositoryId, error) {
return RepositoryId{}, fmt.Errorf("uri %s is not a valid repo url on this host %s", uri, setting.AppURL+"api") return RepositoryId{}, fmt.Errorf("uri %s is not a valid repo url on this host %s", uri, setting.AppURL+"api")
} }
actorId, err := newActorId(uri, source) validatedUri, err := url.ParseRequestURI(uri) // ToDo: Why no err treatment at this place?
if err != nil {
return RepositoryId{}, err
}
actorId, err := newActorId(validatedUri, source)
if err != nil { if err != nil {
return RepositoryId{}, err return RepositoryId{}, err
} }