package utils | |
import ( | |
"net/url" | |
"regexp" | |
"strings" | |
) | |
// BaseEndpoint will return a URL without the /vX.Y | |
// portion of the URL. | |
func BaseEndpoint(endpoint string) (string, error) { | |
u, err := url.Parse(endpoint) | |
if err != nil { | |
return "", err | |
} | |
u.RawQuery, u.Fragment = "", "" | |
path := u.Path | |
versionRe := regexp.MustCompile("v[0-9.]+/?") | |
if version := versionRe.FindString(path); version != "" { | |
versionIndex := strings.Index(path, version) | |
u.Path = path[:versionIndex] | |
} | |
return u.String(), nil | |
} |