56 lines
1.2 KiB
Go
56 lines
1.2 KiB
Go
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()
|
|
}
|