feat: base url + auth support

This commit is contained in:
2025-05-04 11:54:42 +02:00
parent 3551d0f4dc
commit ad2d978fb4
3 changed files with 94 additions and 28 deletions

View File

@ -7,18 +7,18 @@ import (
type Adddress struct {
Host string
Port string
Port string
Route string
}
func ParseAddress(address string) (*Adddress, error) {
parts := strings.SplitN(address, "/", 2)
parts := strings.Split(address, "/")
var route string
if len(parts) == 1 {
route = "/"
} else if len(parts) > 1 {
route = "/" + strings.Join(parts[1:], "")
route = "/" + strings.Join(parts[1:], "/")
} else {
return nil, fmt.Errorf("Failed to parse address: %s", address)
}
@ -30,18 +30,29 @@ func ParseAddress(address string) (*Adddress, error) {
if strings.Contains(addr, ":") {
p := strings.Split(addr, ":")
if len(p) >= 2 {
port = p[len(p) - 1]
port = p[len(p)-1]
addr = p[0]
}
}
return &Adddress{
Host: addr,
Port: port,
Port: port,
Route: route,
}, nil
}
func (a *Adddress) Extend(extension string) (*Adddress, error) {
route := strings.TrimRight(a.Route, "/")
ext := strings.TrimLeft(extension, "/")
return &Adddress{
Host: a.Host,
Port: a.Port,
Route: route + "/" + ext,
}, nil
}
func (a *Adddress) String() string {
return fmt.Sprintf("%s:%s", a.Host, a.Port)
}