config: add Host and Port helpers

This commit is contained in:
Elijah Duffy
2026-01-28 11:17:38 -08:00
parent e2e1228712
commit 78de94c919

View File

@@ -1,6 +1,10 @@
package dbx package dbx
import "fmt" import (
"fmt"
"strconv"
"strings"
)
// DBConfig provides a template for database connection configuration compatible // DBConfig provides a template for database connection configuration compatible
// with go-toolkit/config. If used as a field in a struct, remember to include // with go-toolkit/config. If used as a field in a struct, remember to include
@@ -29,3 +33,32 @@ func (cfg *DBConfig) ConnectionString(dialect Dialect) string {
panic("unsupported dialect: " + string(dialect)) panic("unsupported dialect: " + string(dialect))
} }
} }
// Host returns the host portion of the database URI.
func (cfg *DBConfig) Host() (string, error) {
host, _, err := cfg.split()
return host, err
}
// Port returns the port portion of the database URI.
func (cfg *DBConfig) Port() (int, error) {
_, port, err := cfg.split()
if err != nil {
return 0, err
}
portInt, err := strconv.Atoi(port)
if err != nil {
return 0, fmt.Errorf("invalid port: %w", err)
}
return portInt, nil
}
// splits the URI into host and port.
func (cfg *DBConfig) split() (string, string, error) {
split := strings.Split(cfg.URI, ":")
if len(split) != 2 {
return "", "", fmt.Errorf("invalid URI format")
}
return split[0], split[1], nil
}