oc-lib/config/conf.go

49 lines
1.0 KiB
Go
Raw Normal View History

2024-09-04 10:53:12 +02:00
package config
2024-07-16 10:56:36 +02:00
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 {
2024-08-21 10:04:09 +02:00
NATSUrl string
2024-07-18 16:14:39 +02:00
MongoUrl string
MongoDatabase string
2024-08-26 11:47:30 +02:00
Host string
Port string
2024-09-04 10:53:12 +02:00
LokiUrl string
LogLevel string
2024-11-28 11:05:54 +01:00
Whitelist bool
2024-07-18 14:11:13 +02:00
}
func (c Config) GetUrl() string {
2024-07-18 16:14:39 +02:00
return c.MongoUrl
2024-07-18 14:11:13 +02:00
}
func (c Config) GetDatabase() string {
2024-07-18 16:14:39 +02:00
return c.MongoDatabase
2024-07-16 10:56:36 +02:00
}
var instance *Config
var once sync.Once
func GetConfig() *Config {
once.Do(func() {
instance = &Config{}
})
return instance
}
2024-07-18 11:56:54 +02:00
2024-09-04 10:53:12 +02:00
func SetConfig(mongoUrl string, database string, natsUrl string, lokiUrl string, logLevel string) *Config {
2024-09-04 14:21:01 +02:00
GetConfig().MongoUrl = mongoUrl
GetConfig().MongoDatabase = database
GetConfig().NATSUrl = natsUrl
GetConfig().LokiUrl = lokiUrl
GetConfig().LogLevel = logLevel
2024-11-28 11:05:54 +01:00
GetConfig().Whitelist = true
2024-09-04 14:21:01 +02:00
return GetConfig()
2024-07-18 11:56:54 +02:00
}