44 lines
872 B
Go
44 lines
872 B
Go
package config
|
|
|
|
import (
|
|
"os"
|
|
|
|
"gopkg.in/yaml.v3"
|
|
)
|
|
|
|
type Config struct {
|
|
Database struct {
|
|
Driver string `yaml:"driver"`
|
|
DSN string `yaml:"dsn"`
|
|
} `yaml:"database"`
|
|
|
|
Server struct {
|
|
Port int `yaml:"port"`
|
|
Host string `yaml:"host"`
|
|
} `yaml:"server"`
|
|
|
|
JWT struct {
|
|
Secret string `yaml:"secret"`
|
|
Expiration string `yaml:"expiration"`
|
|
} `yaml:"jwt"`
|
|
|
|
Logging struct {
|
|
Level string `yaml:"level"`
|
|
Format string `yaml:"format"`
|
|
} `yaml:"logging"`
|
|
}
|
|
|
|
// Load loads the configuration from the specified file
|
|
func Load(path string) (*Config, error) {
|
|
data, err := os.ReadFile(path)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
var cfg Config
|
|
if err := yaml.Unmarshal(data, &cfg); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &cfg, nil
|
|
}
|