Yimaru-BackEnd/internal/config/config.go
2025-03-27 23:55:30 +03:00

43 lines
632 B
Go

package config
import (
"errors"
"os"
"strconv"
)
var (
ErrInvalidDbUrl = errors.New("db url is invalid")
ErrInvalidPort = errors.New("port number is invalid")
)
type Config struct {
Port int
DbUrl string
}
func NewConfig() (*Config, error) {
config := &Config{}
if err := config.loadEnv(); err != nil {
return nil, err
}
return config, nil
}
func (c *Config) loadEnv() error {
portStr := os.Getenv("PORT")
port, err := strconv.Atoi(portStr)
if err != nil {
return ErrInvalidPort
}
c.Port = port
dbUrl := os.Getenv("DB_URL")
if dbUrl == "" {
return ErrInvalidDbUrl
}
c.DbUrl = dbUrl
return nil
}