From a8c23a2b5eff2d77dd910396d40a13e705ff85e5 Mon Sep 17 00:00:00 2001 From: petruki <31597636+petruki@users.noreply.github.com> Date: Sat, 26 Oct 2024 16:14:33 -0700 Subject: [PATCH] Fixes service Db dependency on launch time --- src/db/mongo.go | 1 + src/server/app.go | 19 +++++++++++++------ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/db/mongo.go b/src/db/mongo.go index 4a126b1..a07e7c4 100644 --- a/src/db/mongo.go +++ b/src/db/mongo.go @@ -25,6 +25,7 @@ func InitDb() *mongo.Database { err = client.Ping(context.Background(), nil) if err != nil { utils.LogError("Error connecting to MongoDB: %s", err.Error()) + return nil } utils.LogInfo("Connected to MongoDB!") diff --git a/src/server/app.go b/src/server/app.go index 5ba3587..31e315c 100644 --- a/src/server/app.go +++ b/src/server/app.go @@ -97,19 +97,26 @@ func startServerWithSsl(routerHandlers *mux.Router) *http.Server { } func initRoutes(db *mongo.Database, coreHandler *core.CoreHandler) *mux.Router { - accountRepository := repository.NewAccountRepositoryMongo(db) + r := mux.NewRouter() apiController := controller.NewApiController(coreHandler) - accountController := controller.NewAccountController(accountRepository, coreHandler) - - r := mux.NewRouter() apiController.RegisterRoutes(r) - accountController.RegisterRoutes(r) + + if db != nil { + accountRepository := repository.NewAccountRepositoryMongo(db) + accountController := controller.NewAccountController(accountRepository, coreHandler) + accountController.RegisterRoutes(r) + } return r } func initCoreHandler(db *mongo.Database) *core.CoreHandler { + var coreHandler *core.CoreHandler + if db == nil { + return core.NewCoreHandler(nil, nil, nil) + } + accountRepository := repository.NewAccountRepositoryMongo(db) comparatorService := core.NewComparatorService() apiService := core.NewApiService( @@ -118,7 +125,7 @@ func initCoreHandler(db *mongo.Database) *core.CoreHandler { config.GetEnv("SWITCHER_API_CA_CERT"), ) - coreHandler := core.NewCoreHandler(accountRepository, apiService, comparatorService) + coreHandler = core.NewCoreHandler(accountRepository, apiService, comparatorService) coreHandler.InitCoreHandlerGoroutine() return coreHandler