42 lines
858 B
Go
42 lines
858 B
Go
package config
|
|
|
|
import (
|
|
"fmt"
|
|
"strconv"
|
|
)
|
|
|
|
type DatabaseConfig struct {
|
|
Host string
|
|
Port int
|
|
Name string
|
|
User string
|
|
Password string
|
|
}
|
|
|
|
func loadDatabase() (DatabaseConfig, error) {
|
|
port, err := strconv.Atoi(getEnv("DATABASE_PORT", "3306"))
|
|
if err != nil {
|
|
return DatabaseConfig{}, fmt.Errorf("invalid DATABASE_PORT: %w", err)
|
|
}
|
|
return DatabaseConfig{
|
|
Host: getEnv("DATABASE_HOST", ""),
|
|
Port: port,
|
|
Name: getEnv("DATABASE_NAME", "audio"),
|
|
User: getEnv("DATABASE_USER", "root"),
|
|
Password: getEnv("DATABASE_PASSWORD", ""),
|
|
}, nil
|
|
}
|
|
|
|
func (d DatabaseConfig) validate() error {
|
|
if d.Host == "" {
|
|
return fmt.Errorf("database host is required")
|
|
}
|
|
if d.Name == "" {
|
|
return fmt.Errorf("database name is required")
|
|
}
|
|
if d.User == "" {
|
|
return fmt.Errorf("database user is required")
|
|
}
|
|
return nil
|
|
}
|