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 Whitelist bool } 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 { GetConfig().MongoUrl = mongoUrl GetConfig().MongoDatabase = database GetConfig().NATSUrl = natsUrl GetConfig().LokiUrl = lokiUrl GetConfig().LogLevel = logLevel GetConfig().Whitelist = true return GetConfig() }