Files
asset_helper/backend/services/user-svc/internal/config/config.go

52 lines
1.0 KiB
Go

package config
import (
"github.com/spf13/viper"
)
type Config struct {
Server ServerConfig
Database DatabaseConfig
}
type ServerConfig struct {
Port int
}
type DatabaseConfig struct {
Host string
Port int
User string
Password string
DBName string
SSLMode string
}
func Load() (*Config, error) {
viper.SetConfigName("config")
viper.SetConfigType("yaml")
viper.AddConfigPath("./config")
viper.AddConfigPath("../config")
viper.AddConfigPath("../../config")
viper.SetDefault("server.port", 9000)
viper.SetDefault("database.host", "backend-postgres")
viper.SetDefault("database.port", 5432)
viper.SetDefault("database.user", "admin")
viper.SetDefault("database.password", "password")
viper.SetDefault("database.dbname", "backend")
viper.SetDefault("database.sslmode", "disable")
if err := viper.ReadInConfig(); err != nil {
if _, ok := err.(viper.ConfigFileNotFoundError); !ok {
return nil, err
}
}
var config Config
if err := viper.Unmarshal(&config); err != nil {
return nil, err
}
return &config, nil
}