26 lines
361 B
Go
26 lines
361 B
Go
|
package domain
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"net/url"
|
||
|
)
|
||
|
|
||
|
type InvalidURLError struct {
|
||
|
URL string
|
||
|
}
|
||
|
|
||
|
func (e InvalidURLError) Error() string {
|
||
|
return fmt.Sprintf("'%s': invalid URL", e.URL)
|
||
|
}
|
||
|
|
||
|
func parseURL(rawURL string) (*url.URL, error) {
|
||
|
u, err := url.ParseRequestURI(rawURL)
|
||
|
if err != nil {
|
||
|
return nil, InvalidURLError{
|
||
|
URL: rawURL,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return u, nil
|
||
|
}
|