From 9088916f92236ace3561571f489e74eb6009618f Mon Sep 17 00:00:00 2001 From: minie4 Date: Tue, 11 Mar 2025 17:50:25 +0100 Subject: [PATCH] fix(backend): make sure database connection was successful before continuing --- backend/db/db.go | 19 ++++++++++++++----- backend/main.go | 6 +++++- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/backend/db/db.go b/backend/db/db.go index 93356aa..5ad94c6 100644 --- a/backend/db/db.go +++ b/backend/db/db.go @@ -70,13 +70,22 @@ func (conn *DatabaseConnection) QueryGlobalStats() GlobalStatsCollection { return stats } -func CreateDBConnection(uri string) DatabaseConnection { - client, _ := mongo.Connect(options.Client().ApplyURI(uri)) - return DatabaseConnection{client} +func CreateDBConnection(uri string) *DatabaseConnection { + client, err := mongo.Connect(options.Client().ApplyURI(uri)) + if err != nil { + slog.Error("MongoDB connection failed", "error", err) + return nil + } + return &DatabaseConnection{client} } var Conn DatabaseConnection -func InitDB(uri string) { - Conn = CreateDBConnection(uri) +func InitDB(uri string) bool { + dbConn := CreateDBConnection(uri) + if dbConn == nil { + return false + } + Conn = *dbConn + return true } diff --git a/backend/main.go b/backend/main.go index 7537209..ee2e420 100644 --- a/backend/main.go +++ b/backend/main.go @@ -22,7 +22,11 @@ func main() { slog.Error("MONGO_URI environment variable not set!") return } - db.InitDB(mongoUri) + ok := db.InitDB(mongoUri) + if !ok { + slog.Error("Initializing MongoDB database failed") + return + } game.LoadRooms() roomTicker := time.NewTicker(1 * time.Second)