@@ -36,14 +36,35 @@ type Container struct {
3636 SQL * sql.DB
3737}
3838
39+ func NewEmptyContainer () * Container {
40+ return & Container {}
41+ }
42+
3943func NewContainer (conf config.Config ) * Container {
4044 c := & Container {
41- Logger : logging .NewRemoteLogger (logging .GetLevelFromString (conf .Get ("LOG_LEVEL" )), conf .Get ("REMOTE_LOG_URL" ),
42- conf .GetOrDefault ("REMOTE_LOG_FETCH_INTERVAL" , "15" )),
4345 appName : conf .GetOrDefault ("APP_NAME" , "gofr-app" ),
4446 appVersion : conf .GetOrDefault ("APP_VERSION" , "dev" ),
4547 }
4648
49+ c .Create (conf )
50+
51+ return c
52+ }
53+
54+ func (c * Container ) Create (conf config.Config ) {
55+ if c .appName != "" {
56+ c .appName = conf .GetOrDefault ("APP_NAME" , "gofr-app" )
57+ }
58+
59+ if c .appVersion != "" {
60+ c .appVersion = conf .GetOrDefault ("APP_VERSION" , "dev" )
61+ }
62+
63+ if c .Logger == nil {
64+ c .Logger = logging .NewRemoteLogger (logging .GetLevelFromString (conf .Get ("LOG_LEVEL" )), conf .Get ("REMOTE_LOG_URL" ),
65+ conf .GetOrDefault ("REMOTE_LOG_FETCH_INTERVAL" , "15" ))
66+ }
67+
4768 c .Debug ("Container is being created" )
4869
4970 c .metricsManager = metrics .NewMetricsManager (exporters .Prometheus (c .appName , c .appVersion ), c .Logger )
@@ -74,8 +95,6 @@ func NewContainer(conf config.Config) *Container {
7495 SubscriptionName : conf .Get ("GOOGLE_SUBSCRIPTION_NAME" ),
7596 }, c .Logger )
7697 }
77-
78- return c
7998}
8099
81100// GetHTTPService returns registered http services.
0 commit comments