33 lines
712 B
Go
33 lines
712 B
Go
|
|
package config
|
||
|
|
|
||
|
|
import (
|
||
|
|
"errors"
|
||
|
|
"os"
|
||
|
|
)
|
||
|
|
|
||
|
|
type Config struct {
|
||
|
|
AppEnv string
|
||
|
|
MysqlDSN string
|
||
|
|
RabbitMQURL string
|
||
|
|
ExchangeName string
|
||
|
|
QueueName string
|
||
|
|
RoutingKey string
|
||
|
|
}
|
||
|
|
|
||
|
|
func NewConfig() (*Config, error) {
|
||
|
|
cfg := &Config{
|
||
|
|
AppEnv: os.Getenv("APP_ENV"),
|
||
|
|
MysqlDSN: os.Getenv("MYSQL_DSN"),
|
||
|
|
RabbitMQURL: os.Getenv("RABBITMQ_URL"),
|
||
|
|
ExchangeName: os.Getenv("EXCHANGE_NAME"),
|
||
|
|
QueueName: os.Getenv("QUEUE_NAME"),
|
||
|
|
RoutingKey: os.Getenv("ROUTING_KEY"),
|
||
|
|
}
|
||
|
|
|
||
|
|
if cfg.MysqlDSN == "" || cfg.RabbitMQURL == "" || cfg.ExchangeName == "" || cfg.QueueName == "" || cfg.RoutingKey == "" {
|
||
|
|
return nil, errors.New("missing required environment variables")
|
||
|
|
}
|
||
|
|
|
||
|
|
return cfg, nil
|
||
|
|
}
|