2023-12-21 06:28:53 +00:00
|
|
|
package domain
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"net/url"
|
|
|
|
)
|
|
|
|
|
|
|
|
type InvalidURLError struct {
|
|
|
|
URL string
|
|
|
|
}
|
|
|
|
|
|
|
|
func (e InvalidURLError) Error() string {
|
2023-12-27 08:07:40 +00:00
|
|
|
return fmt.Sprintf("%s: invalid URL", e.URL)
|
2023-12-21 06:28:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func parseURL(rawURL string) (*url.URL, error) {
|
|
|
|
u, err := url.ParseRequestURI(rawURL)
|
|
|
|
if err != nil {
|
|
|
|
return nil, InvalidURLError{
|
|
|
|
URL: rawURL,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return u, nil
|
|
|
|
}
|