package config import "sync" // =================================================== // This class has to be updated everytime // a new configuration variable is defined // in a componant that imports oc-lib // =================================================== type Config struct { NATSUrl string MongoUrl string MongoDatabase string Host string Port string LokiUrl string LogLevel string } func (c Config) GetUrl() string { return c.MongoUrl } func (c Config) GetDatabase() string { return c.MongoDatabase } var instance *Config var once sync.Once func GetConfig() *Config { once.Do(func() { instance = &Config{} }) return instance } func SetConfig(mongoUrl string, database string, natsUrl string, lokiUrl string, logLevel string) *Config { /*once.Do(func() { instance = &Config{ MongoUrl: mongoUrl, MongoDatabase: database, NATSUrl: natsUrl, LokiUrl: lokiUrl, LogLevel: logLevel, } })*/ GetConfig().MongoUrl = mongoUrl GetConfig().MongoDatabase = database GetConfig().NATSUrl = natsUrl GetConfig().LokiUrl = lokiUrl GetConfig().LogLevel = logLevel return GetConfig() }